Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过文本框编辑数据库中的单个项目_C#_Dataset - Fatal编程技术网

C# 通过文本框编辑数据库中的单个项目

C# 通过文本框编辑数据库中的单个项目,c#,dataset,C#,Dataset,我创建了一种在列表框中获取选定值并将该项添加到单独表单上的文本框的方法。在这里,我试图为用户提供一种方法来更改该单词,并将其反映在我创建的数据集中。当前,当我更改该单词时,它会用新单词替换数据集中的每个条目,而不仅仅是特定条目。我试图找出如何指定只更改一项。这是因为查询中缺少WHERE子句。您需要在查询中使用WHERE子句来仅更新您喜欢的某些选定记录: 例如:更新字典集word=@word,其中ID=@ID 这只是一个例子。你必须按照你的要求写WHERE条款 希望这能有所帮助。您需要使用“WHE

我创建了一种在列表框中获取选定值并将该项添加到单独表单上的文本框的方法。在这里,我试图为用户提供一种方法来更改该单词,并将其反映在我创建的数据集中。当前,当我更改该单词时,它会用新单词替换数据集中的每个条目,而不仅仅是特定条目。我试图找出如何指定只更改一项。

这是因为查询中缺少
WHERE
子句。您需要在查询中使用
WHERE
子句来仅更新您喜欢的某些选定记录:

例如:
更新字典集word=@word,其中ID=@ID

这只是一个例子。你必须按照你的要求写WHERE条款


希望这能有所帮助。

您需要使用“WHERE”子句指定要更改的特定条目(每个条目都应该有一个唯一的ID)。正如您所说,您使用当前SQL所做的只是将每个条目的Word列设置为文本框中的任何内容。实际上,我有类似的设置,如Word=@Word,其中wordID=@wordID,它告诉我“必须声明scaler变量@wordID”WordID是主键,以防混淆。您需要以添加@word的相同方式添加它,首先在查询中添加,然后使用
cmd.Parameters.AddWithValue(“@WordID”,WordID)
语句以确保它被正确地传递。是的,它不允许我这样做,因为WordID“在当前上下文中不存在”。不知何故,您必须设法将其放入或其他列中,以放入
WHERE
子句中,以唯一地标识要更新的记录,否则这将不断更新整个表。
private void button1_Click(object sender, EventArgs e)
{
 using (SqlConnection connection =  new SqlConnection(ConnectionString)
{
 connection.Open();
 SqlCommand cmd = new SqlCommand("update dictionary set word=@word", connection);

        cmd.Parameters.AddWithValue("@word", wordTextBox.Text);
        cmd.ExecuteNonQuery();
        this.Close();
    }
}