C# 删除数据库中的行
我有下面的代码,但我似乎无法按照我想要的方式操作它。我希望命令在数据库中搜索与C# 删除数据库中的行,c#,sql-server,winforms,C#,Sql Server,Winforms,我有下面的代码,但我似乎无法按照我想要的方式操作它。我希望命令在数据库中搜索与textbox2.text匹配的第一个条目,并删除该行 private void button4_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\DillPickle\Documents\
textbox2.text
匹配的第一个条目,并删除该行
private void button4_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\DillPickle\Documents\Data.mdf;Integrated Security=True;Connect Timeout=30");
SqlDataAdapter sda = new SqlDataAdapter("Select Count(*) From ACCNT where ACCNTNUM=" + textBox2.Text , con);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows[0][0].ToString() == "1")
{
ACCNT."txtbox2.text".Rows[0].Delete();
}
else
{
MessageBox.Show("The account does not exist in the record!");
}
}
有很多方法可以完成你想做的事情;这里有一个方法:
private readonly string SqlConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\DillPickle\Documents\Data.mdf;Integrated Security=True;Connect Timeout=30";
private readonly string SqlDeleteQuery = "DELETE FROM ACCNT WHERE ACCNTNUM=@accountNumber";
private void button4_Click(object sender, EventArgs e)
{
try
{
using (var sqlConnection = new SqlConnection(SqlConnectionString))
using (var sqlCommand = sqlConnection.CreateCommand())
{
sqlConnection.Open();
sqlCommand.CommandText = SqlDeleteQuery;
sqlCommand.Parameters.AddWithValue("@accountNumber", textBox2.Text);
sqlCommand.ExecuteNonQuery();
}
}
catch (Exception ex)
{
// Do something with the exception, like log it...
}
}
1) 您的代码易受Sql注入攻击,2)您没有删除第一个条目,只有在只有一个匹配项时才删除它。噢,还有3)什么是
ACCNT.“txtbox2.text”
?您正在从数据表中删除,而不是从数据库本身中删除。此外,您的逻辑将始终返回零或一个结果。这个结果不是与你的账号相关的行,它只是一个包含该账号的行数。只需删除该行,然后检查有多少行受到影响,以确定它是否存在。这非常有效!非常感谢你的帮助。现在我知道了它的样子,我觉得我更了解这个函数了。没问题,很乐意帮忙。请不要忘记将其标记为已接受的答案,如果对您有帮助,请进行投票。:)