已加入
2020年5月15日
留言内容
29
编程经验
Beginner
你好

我有一个具有ID,名字,姓氏,电话号码和地址的sql server数据库。我创建了一个具有数据库数据集的wpf应用程序,并使用datagrid视图查看该表。我这样做是作为学习过程。现在,我正在学习如何在Visual Studio中使用wpf应用程序更新数据库。我学习了如何更新一个值,即电话号码。我使用表格适配器使用带有按钮的名字更新电话号码。当您按下按钮时,它将更新数据库。
C#:
private void  更新资料 _Click(object sender, RoutedEventArgs e)
{
    string FirstName = FN1_Name.Text;
    string NewPhoneNo = Interaction.InputBox("Enter Phone Number", "Update", "");
   
    if (NewPhoneNo != "")
    {
        friends1TableAdapter.UpdatePhoneNumberQuery(NewPhoneNo, FirstName);
    }
}

单击更新是按钮,此操作会得到名字,然后使用它通过具有sql查询的表适配器来更新电话号码
SQL:
 更新资料  Friends1
Set [Phone Number] = @Phone_Number
Where ([First Name] = @First_Name)

这部分有效。但是,现在我要执行的操作是使用ID并仅使用一个按钮和一个表适配器来更新更新为First Name,Last Name,Phone Number或Address的任何值。这是可能的还是我必须为每个列创建单独的按钮和单独的表适配器。谢谢。
 
由主持人最后编辑:

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,499
地点
悉尼,澳大利亚
编程经验
10+
您应该使用 ID 在里面 哪里 子句,因为它大概是主键,所以这就是它的作用。您应该在 哪里 子句以及可以在 条款。

就是说,如果您使用的是网格,则实际上不应该一次保存一个记录。将所有数据检索到 数据表 ,将其绑定到您的UI或将数据映射到其他数据结构并将其绑定,让用户进行所需的所有更改,然后将更改映射回 数据表 如有必要,只需一次致电即可节省很多 更新资料 表适配器的方法。一次只编辑一个记录时,您才应该真正使用按记录的方法。
 
已加入
2020年5月15日
留言内容
29
编程经验
Beginner
您应该使用 ID 在里面 哪里 子句,因为它大概是主键,所以这就是它的作用。您应该在 哪里 子句以及可以在 条款。

就是说,如果您使用的是网格,则实际上不应该一次保存一个记录。将所有数据检索到 数据表 ,将其绑定到您的UI或将数据映射到其他数据结构并将其绑定,让用户进行所需的所有更改,然后将更改映射回 数据表 如有必要,只需一次致电即可节省很多 更新资料 表适配器的方法。一次只编辑一个记录时,您才应该真正使用按记录的方法。

谢谢。但是我的问题是我只想更新一个值,而其他所有值都应保持不变。例如:
ID = 4,名字= Henry,姓氏= Thomas,电话号码= 8151437209。
但是说我输入的电话号码有误。正确的电话号码是9276541682。

因此,我只想将电话号码更新为新值,并使所有其他值保持不变。那我该怎么办呢?
 
最佳 底部