Foxtable(狐表)用户栏目专家坐堂 → [求助]此段代码错在何处


  共有13296人关注过本帖树形打印复制链接

主题:[求助]此段代码错在何处

帅哥哟,离线,有人找我吗?
ybmjy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:444 积分:4841 威望:0 精华:3 注册:2009/7/4 13:40:00
[求助]此段代码错在何处  发帖心情 Post By:2010/4/28 7:19:00 [只看该作者]

Dim Multi As String = "姓名,性别,年龄"
Dim Values() as String
Values = Multi.split(",")
For Index As Integer = 0 To Values.Length - 1
    if e.Form.Controls(Values(Index)).Value = nothing
        MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示")
        e.Form.Controls(Values(Index)).Select()
        Return
    end if
    dim y as String = ""
    y = y & "," & Values(Index)
    dim s as String = ""
    s = s & ",'" & e.Form.Controls(Values(Index)).value & "'"
    Dim scm as New SQLCommand
    scm.ConnectionName  = "y"
    scm.CommandText = "Insert Into 民兵 " & "(" & y.Trim(",") & ")" & "" & "" & "Values(" & s.Trim(",") & ")"
    scm.ExecuteNonQuery
Next

在向后台数据库中写入控件值时,为何一个控件的值在后台就是一行。如上代码将在后台数据库中写入3行

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/4/28 8:59:00 [只看该作者]

加入一行:

scm.CommandText = "Insert Into 民兵 " & "(" & y.Trim(",") & ")" & "" & "" & "Values(" & s.Trim(",") & ")"
Messagebox.show(scm.CommandText)
scm.ExecuteNonQuery


看看你合成的SQL语句是否正确

 回到顶部
帅哥哟,离线,有人找我吗?
ybmjy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:444 积分:4841 威望:0 精华:3 注册:2009/7/4 13:40:00
  发帖心情 Post By:2010/4/28 9:12:00 [只看该作者]

以下是引用狐狸爸爸在2010-4-28 8:59:00的发言:
加入一行:

scm.CommandText = "Insert Into 民兵 " & "(" & y.Trim(",") & ")" & "" & "" & "Values(" & s.Trim(",") & ")"
Messagebox.show(scm.CommandText)
scm.ExecuteNonQuery


看看你合成的SQL语句是否正确

控件值都能正确地写到相应的字段中,就是有几个控件就会增加几行,估计是循环语句的问题,可又不知如何弄了哈
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/4/28 9:28:00 [只看该作者]

呵呵,你的scm.ExecuteNonQuery就在循环语句之中,每循环一次就插入一行,你应该将其挪到循环语句之外。

Dim Multi As String = "姓名,性别,年龄"
Dim Values() as String
Values = Multi.split(",")
dim y as String = ""
dim s as String = ""
For Index As Integer = 0 To Values.Length - 1
    if e.Form.Controls(Values(Index)).Value = nothing
        MessageBox.Show("对不起,您输入的信息不全,请录入<" & Values(Index) & ">后再继续!", "提示")
        e.Form.Controls(Values(Index)).Select()
        Return
    end if
    y = y & "," & Values(Index)
    s = s & ",'" & e.Form.Controls(Values(Index)).value & "'"
Next
Dim scm as New SQLCommand
scm.ConnectionName  = "y"
scm.CommandText = "Insert Into 民兵 " & "(" & y.Trim(",") & ")" & "" & "" & "Values(" & s.Trim(",") & ")"
scm.ExecuteNonQuery

大概就是这样,你自己调试一下吧

图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
ybmjy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:444 积分:4841 威望:0 精华:3 注册:2009/7/4 13:40:00
  发帖心情 Post By:2010/4/28 9:31:00 [只看该作者]

搞定,谢谢

 回到顶部