VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 994|回复: 10

更新数据集

[复制链接]

1

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-3-22 21:00:02 | 显示全部楼层 |阅读模式
Private Sub updata_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles updata.Click
        imagepath = Application.StartupPath + "\face\" + data.Tables(0).Rows(0).Item(6) + ".bmp"
        a = a.FromFile(imagepath)
              Else
            Try
                Dim strsql As String = "update cardinfo set(name=@name,old=@old,number=@number,address=@address,mail=@mail)"
                Dim strcmd As New SqlCommand(strsql, sqlconn)
                With data.Tables(0).Rows(0)
                    .Item(0).Parameters.Add(New SqlParameter("@name", SqlDbType.VarChar)).Value = nametxt.Text
                    .Item(2).Parameters.Add(New SqlParameter("@old", SqlDbType.Int)).Value = old.Text
                    .Item(4).Parameters.Add(New SqlParameter("@number", SqlDbType.VarChar)).Value = number.Text
                    If man.Checked.ToString = "男" Then
                        .Item(1).Parameters.Add(New SqlParameter("@sex", SqlDbType.VarChar)).Value = "男"
                    Else : .Item(1).Parameters.Add(New SqlParameter("@sex", SqlDbType.VarChar)).Value = "女"
                    End If
                    .Item(3).Parameters.Add(New SqlParameter("@address", SqlDbType.VarChar)).Value = address.Text
                    .Item(5).Parameters.Add(New SqlParameter("@mail", SqlDbType.VarChar)).Value = mail.Text
                End With
                strcmd.CommandType = CommandType.Text
                sqlconn.Open()
                strcmd.ExecuteNonQuery()
                strcmd.CommandType = CommandType.Text
                cardada.SelectCommand = strcmd
                cardada.Update(data)
                sqlconn.Close()
                MessageBox.Show("更新成功", "状态", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Catch sqlexc As SqlException
                MessageBox.Show(sqlexc.ToString, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
            End Try
        End If
    End Sub
大家帮我看下。为什么,我运行到.Item(0).Parameters.Add(New SqlParameter("@name", SqlDbType.VarChar)).Value = nametxt.Text
提示未找到类型“String”的公共成员“Parameters”。
好痛苦啊。哪位指点下
回复

使用道具 举报

0

主题

48

帖子

30.00

积分

新手上路

Rank: 1

积分
30.00
发表于 2020-7-1 11:45:01 | 显示全部楼层
sqlparameter是 用于sqlcommand的,而你是要用sqlparameter
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-7-1 14:45:01 | 显示全部楼层
data.Tables(0).Rows(0).Item(0).Parameters.Add(...)

--VB.NET中有这样的用法吗?
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-7-2 13:00:01 | 显示全部楼层
应该是
strcmd.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = nametxt.Text
....

回复

使用道具 举报

1

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-7-5 17:00:02 | 显示全部楼层
谢谢各位,可是我改成了
Try
            Dim strsql As String = "update cardinfo set name=@name,old=@old,sex=@sex,number=@number,address=@address,mail=@mail"
            Dim strcmd As New SqlCommand(strsql, sqlconn)
            With strcmd
                .Parameters.Add(New SqlParameter("@name", SqlDbType.VarChar)).Value = nametxt.Text
                .Parameters.Add(New SqlParameter("@old", SqlDbType.Int)).Value = old.Text
                .Parameters.Add(New SqlParameter("@number", SqlDbType.VarChar)).Value = number.Text
                If man.Checked.ToString = "男" Then
                    .Parameters.Add(New SqlParameter("@sex", SqlDbType.VarChar)).Value = "男"
                Else : .Parameters.Add(New SqlParameter("@sex", SqlDbType.VarChar)).Value = "女"
                End If
                .Parameters.Add(New SqlParameter("@address", SqlDbType.VarChar)).Value = address.Text
                .Parameters.Add(New SqlParameter("@mail", SqlDbType.VarChar)).Value = mail.Text
            End With
            strcmd.CommandType = CommandType.Text
            sqlconn.Open()
            strcmd.CommandType = CommandType.Text
            cardada.SelectCommand = strcmd
            strcmd.ExecuteNonQuery()
            sqlconn.Close()
            MessageBox.Show("更新成功", "状态", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Catch sqlexc As SqlException
            MessageBox.Show(sqlexc.ToString, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
        End Try
却是把整张表都给更新成新的记录了。
怎么办呢
回复

使用道具 举报

1

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-7-5 18:30:01 | 显示全部楼层
还有就是请问。vs怎么添加右键菜单呀。
我找半天没找到那个控件,请指点
回复

使用道具 举报

1

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-7-5 18:45:01 | 显示全部楼层
请问怎么更新dataset后,再将数据返回到数据库,哪位大哥,写一下好吗。
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-7-5 19:30:01 | 显示全部楼层
Dim strsql As String = "update cardinfo set name=@name,old=@old,sex=@sex,number=@number,address=@address,mail=@mail where 列名=条件"

--没有写条件当然是更新所有记录
回复

使用道具 举报

1

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-7-6 20:30:01 | 显示全部楼层
真是谢谢呀。太感谢了。
成功了,现在就差不会添加右键菜单。
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-7-7 08:00:01 | 显示全部楼层
WinForm里有个菜单控件很方便的
ASP.NET就没弄过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表