数据库插入问题
我定义了两个字符串,Dim stnr As String = ""Dim stda As String = ""
并用分隔符“|”来分割 Dim stra() As String = str.Split("|")
我插入数据库对应的位置,这样写有问题
mycom.CommandText = "insert into testinsert(STNR,STDA) values ('" + stnr + " '|' " + stda + " ')"
请问问题在哪呢?
--------------------编程问答-------------------- 我看不出你前几句代码和下面的Sql语句有什么关系,但是我知道Sql语言的Insert into 指令的Values部分的括号中多几个字段值用逗号分割的是没问题的,用|分割语法是不报错,但是执行起来总会提示“插入错误: 列名或所提供值的数目与表定义不匹配” --------------------编程问答-------------------- 你要插入2个字段,而|只是个运算符,所以少一个字段,肯定不成功的 --------------------编程问答-------------------- mycom.CommandText = "insert into testinsert(STNR,STDA) values ('" + stnr + " ' ¦' " + stda + " ')"
这句话有几个问题.
1:insert into testinsert(STNR,STDA) 有两个字段.但是的values中的字符串只有一个.因为('" + stnr + " ' ¦' " + stda + " ')" 是一个字符串2:
如果你确实是('" + stnr + " ' ¦' " + stda + " ')" 连接.请把"'"单引号去掉!
--------------------编程问答-------------------- Dim str As String = ""
Do While Not sr.EndOfStream
str = sr.ReadLine()
Dim stnr As String = ""
Dim stda As String = ""
Dim stra() As String = str.Split("|")
If stra.Length >= 2 Then
stnr = stra(0)
stda = stra(1)
End If
mycom.Connection.ConnectionString = constr '为这个连接字符串重新赋值
mycon.Open() '打开这个联接
mycom.CommandText = "insert into testinsert(STNR,STDA) values ('" + stnr + "','" + stda + " ')"
mycom.ExecuteNonQuery() '执行sql语句,并把数据插入到数据库中
我是做了个判断,把“|”前的字符串插入STNR,把“|”后的字符串插入STDA,是两个字段,如何改呢 --------------------编程问答-------------------- mycom.CommandText = "insert into testinsert(STNR,STDA) values ('" + stnr + " ' ,' " + stda + " ')"
COPY我的这句话再试...
考虑主键问题。和数据库字段类型。.如果两个字段都是VARCHAR的话用我的这句。如果有哪个字段是INT型的就把相应的单引号去掉 --------------------编程问答-------------------- 只要前面写的字段和后面的赋值位置一致就不用判断.. --------------------编程问答-------------------- 只要
mycom.CommandText = "insert into testinsert(STNR,STDA) values ('" + str.Split("¦")(0) + "','" + str.Split("¦")(1) + " ')"即可 --------------------编程问答-------------------- mycom.CommandText = "insert into testinsert(STNR,STDA) values ('" + stnr + " ' ,' " + stda + " ')"
我原先就试过,不行,出现这个错误
不允许更改“ConnectionString”属性。连接的当前状态为打开。 --------------------编程问答--------------------
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath() & "\accessDB.mdb;"
myConnection = New OleDbConnection(strConnect)
Dim cmdCommand As New OleDbCommand(strCurSqlText, myConnection)
cmdCommand.ExecuteNonQuery()
你这么写呢?是不是传参问题.. --------------------编程问答-------------------- 这个错误提示根本就是不是这里出错,是你试图修改一个处于打开状态的SQLConnection的连接字串的错误,你再好好查查代码吧。 --------------------编程问答-------------------- mycom.CommandText = "insert into testinsert(STNR,STDA) values ('" + str.Split("¦")(0) + "','" + str.Split("¦")(1) + " ')"
这又出现了“索引超出了数组界限”的错误啊 --------------------编程问答-------------------- 数组超出边界说明你的str中存放的字符串里不包含“|”,无法用|来拆分。这些问题你自己调试的时候慢慢查吧 --------------------编程问答-------------------- 我是想这样分割的,文本文件由于符号太多(,.<...),但是导入数据库要把试题和答案分开,我只能用"|"这个分隔符了,正如你所说的,可能“”里没有|这个分隔符。 --------------------编程问答-------------------- 连接数据库和操作数据库的问题。.别在SQL上下工夫了 --------------------编程问答-------------------- 为切实加强易做图信息网络安全管理工作,规范易做图机关人民易做图使用易做图信息网,落实( )的管理责任制,根据《中华人民共和国人民易做图法》、《中华人民共和国计算机信息系统安全保护条例》等有关法律、法规,制定本规定。
A 谁主管、谁负责
B 谁使用、谁负责
C 谁负责、谁使用
D 谁负责、谁主管
|AB
易做图机关人民易做图(以下简称易做图易做图)使用易做图信息网行为,是指易做图易做图在易做图信息网上进行的( )等行为。
A 软硬件安装与开发
B 信息发布
C 信息查阅
D 应用
|ABCD
......
有很多这样的题目和答案,我想把“|”前面的插入STNR,把后面的“|”插入STDA,
Dim str As String = ""
Do While Not sr.EndOfStream
str = sr.ReadLine()
Dim stnr As String = ""
Dim stda As String = ""
Dim stra() As String = str.Split(" ¦")
If stra.Length >= 2 Then
stnr = stra(0)
stda = stra(1)
End If
mycom.Connection.ConnectionString = constr
mycon.Open()
mycom.CommandText = "insert into testinsert(STNR,STDA) values ('" + stnr + "','" + stda + " ')"
mycom.ExecuteNonQuery()
其余代码省略了,现在的主要的问题是分割上,就是split的方法上 --------------------编程问答-------------------- 为切实加强易做图信息网络安全管理工作,规范易做图机关人民易做图使用易做图信息网,落实( )的管理责任制,根据《中华人民共和国人民易做图法》、《中华人民共和国计算机信息系统安全保护条例》等有关法律、法规,制定本规定。
A 谁主管、谁负责
B 谁使用、谁负责
C 谁负责、谁使用
D 谁负责、谁主管
|AB
易做图机关人民易做图(以下简称易做图易做图)使用易做图信息网行为,是指易做图易做图在易做图信息网上进行的( )等行为。
A 软硬件安装与开发
B 信息发布
C 信息查阅
D 应用
|ABCD
......
有很多这样的题目和答案,我想把“ |”前面的插入STNR,把后面的“ |”插入STDA,
Dim str As String = ""
Do While Not sr.EndOfStream
str = sr.ReadLine()
Dim stnr As String = ""
Dim stda As String = ""
Dim stra() As String = str.Split(" ¦")
If stra.Length >= 2 Then
stnr = stra(0)
stda = stra(1)
End If
mycom.Connection.ConnectionString = constr
mycon.Open()
mycom.CommandText = "insert into testinsert(STNR,STDA) values ('" + stnr + "','" + stda + " ')"
mycom.ExecuteNonQuery()
其余代码省略了,现在的主要的问题是分割上,就是split的方法上 --------------------编程问答-------------------- 你用DEBUG走一变.把SQL语句放在一个变量里。然后把那个赋值后SQL语句贴出来看看...
单独拿到DB里插入一下看看能不能行...
--------------------编程问答-------------------- 你这个splite是不会成功的,你用的是ReadLine(),那么结果只有以下几行
¦AB 分割结果:stnr="",stda="AB"
¦ABCD 分割结果:stnr="",stda="ABCD" --------------------编程问答-------------------- 不用ReadLine(),那应该用什么方法呢,split不行吗,不会要用正则吧 --------------------编程问答-------------------- 不用ReadLine(),那应该用什么方法呢,split不行吗,不会要用正则吧,还有什么其他的方法呢 --------------------编程问答-------------------- 写个库文件,调用一下,行吗
补充:.NET技术 , VB.NET