| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3153 人关注过本帖
标题:insert into 语法问题?
只看楼主 加入收藏
小南瓜
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-5-25
收藏
 问题点数:0 回复次数:15 
insert into 语法问题?

str = "insert into selecting(number,question,result1,result2,result3,rusult4,answer)values('" & TextBox6.Text & "','" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & DropDownList1.SelectedItem.Value & "')"


请问到底有什么语法错误,我实在想不出来

搜索更多相关主题的帖子: insert 语法 
2006-05-27 14:45
xufengtang
Rank: 1
等 级:新手上路
威 望:1
帖 子:89
专家分:0
注 册:2006-5-7
收藏
得分:0 

有! 你代码太乱最好不要这样写,我插入值列数太多的时候我都是参数来传值的。
例如如下代码就能实现插入,并且代码看起清晰:
Dim com1 As New System.Data.SqlClient.SqlCommand("insert into 学生信息 values(@s1,@s2,@s3,@s4,@s5,@s6,@s7,@s8,@s9,@s10,@s11,@s12,@s13,@s14,@s15,@s16,@s17,@s18,@s19)", conn1)

com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s1", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s2", System.Data.SqlDbType.Int, 4))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s3", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s4", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s5", System.Data.SqlDbType.DateTime, 8))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s6", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s7", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s8", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s9", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s10", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s11", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s12", System.Data.SqlDbType.Int, 4))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s13", System.Data.SqlDbType.DateTime, 8))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s14", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s15", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s16", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s17", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s18", System.Data.SqlDbType.Char, 10))
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s19", System.Data.SqlDbType.Char, 10))
com1.Parameters("@s1").Value = TextBox7.Text
com1.Parameters("@s2").Value = TextBox6.Text
com1.Parameters("@s3").Value = ComboBox2.Text
com1.Parameters("@s4").Value = ComboBox3.Text
com1.Parameters("@s5").Value = TextBox8.Text
com1.Parameters("@s6").Value = ComboBox4.Text
com1.Parameters("@s7").Value = TextBox9.Text
com1.Parameters("@s8").Value = ComboBox5.Text
com1.Parameters("@s9").Value = TextBox10.Text
com1.Parameters("@s10").Value = TextBox11.Text
com1.Parameters("@s11").Value = TextBox12.Text
com1.Parameters("@s12").Value = TextBox13.Text
com1.Parameters("@s13").Value = TextBox14.Text
com1.Parameters("@s14").Value = ComboBox6.Text
com1.Parameters("@s15").Value = ComboBox7.Text
com1.Parameters("@s16").Value = ComboBox8.Text
com1.Parameters("@s17").Value = ComboBox9.Text
com1.Parameters("@s18").Value = TextBox15.Text
com1.Parameters("@s19").Value = TextBox16.Text
conn1.Open()
com1.ExecuteNonQuery()
conn1.Close()
这样再多也不怕也好改


2006-05-27 15:05
小南瓜
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-5-25
收藏
得分:0 

啊,好复杂啊,我看不懂啊,我是access数据库

2006-05-27 15:08
xufengtang
Rank: 1
等 级:新手上路
威 望:1
帖 子:89
专家分:0
注 册:2006-5-7
收藏
得分:0 

把这里的 Dim com1 As New System.Data.SqlClient.SqlCommand("insert into 学生信息 values(@s1,@s2,@s3,@s4,@s5,@s6,@s7,@s8,@s9,@s10,@s11,@s12,@s13,@s14,@s15,@s16,@s17,@s18,@s19)", conn1)
@s1,@s2~~@s19 全改成 ?
com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s1", System.Data.SqlDbType.Char, 10))
这里的System.Data.SqlDbType.Char 改成 system.data.oledbtype.char,10
就可以用于所有的oledb数据库了

大概解释下,command对象有个属性是用来存放SQL命令参数集合的,即parameters,
上面代码就是给参数集合添加参数。通过对参数赋值,把值传个SQL语句里。

com1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@s1", System.Data.SqlDbType.Char, 10))这是添加参数

com1.Parameters("@s1").Value = TextBox7.Text 这是给参数赋值,在执行SQL语句的时候它就能自动把值传给SQL语句了

[此贴子已经被作者于2006-5-27 15:26:20编辑过]


2006-05-27 15:17
float
Rank: 1
等 级:新手上路
威 望:1
帖 子:52
专家分:0
注 册:2006-4-10
收藏
得分:0 

这有时也跟你的数据库有关系的,数据库中的字段类型
日期型就要用#连,数值型就不用单引号,
总之很难说清楚了

2006-05-27 19:04
小南瓜
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-5-25
收藏
得分:0 
啊,是这样啊,能不能讲具体一点呢,数值型是什么,数字吗?
2006-05-27 20:28
water123456
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:3208
专家分:5
注 册:2006-2-21
收藏
得分:0 
你用的也对, 你的是SQL的写法,可是他们用的参数写法,你把它们的分解开来看,就容易啦.

让我们风风火火的过一生,别平平淡淡过一年。
2006-05-27 23:17
小南瓜
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-5-25
收藏
得分:0 
哦,这样啊,谢谢楼上各位大人了,我找到原因了,是字段名不能用number
2006-05-28 23:01
lanjinbo
Rank: 1
等 级:新手上路
威 望:1
帖 子:109
专家分:0
注 册:2006-4-14
收藏
得分:0 
是ACCESS也没关系啊,只要把自定义参数像 “@s1”改为“?”就可以了

天蓝蓝,水蓝蓝,扬帆远航,有鱼儿作伴 风嘻嘻,云嘻嘻,共渡幸福彼岸
2006-05-29 01:02
小南瓜
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-5-25
收藏
得分:0 

还是觉得挺复杂的
谁能顺便把delete,update的语法也讲下吗?

2006-05-29 13:58
快速回复:insert into 语法问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026625 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved