已加入
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,468
位置
悉尼,澳大利亚
编程经验
10+
您应该使用 ID 在里面 哪里 子句,因为它大概是主键,所以这就是它的作用。您应该在 哪里 子句以及可以在 条款。

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

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

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

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