C# 在winforms中单键单击插入、更新
我不明白,如何在WinC窗体中插入和更新数据,只需单击一个按钮C# 在winforms中单键单击插入、更新,c#,C#,我不明白,如何在WinC窗体中插入和更新数据,只需单击一个按钮 private void save_Click(object sender, EventArgs e) { SqlConnection cn = new SqlConnection(); cn.ConnectionString = "data source=Sai;database=kaur; user id=sa;password=azxc;"; cn.Open();
private void save_Click(object sender, EventArgs e)
{
SqlConnection cn = new SqlConnection();
cn.ConnectionString = "data source=Sai;database=kaur; user id=sa;password=azxc;";
cn.Open();
string gen;
if (radioButton1.Checked == true)
gen = "Male";
else
gen = "Female";
string clas = null;
clas = comboBox1.Text;
string section = null;
section = comboBox2.Text;
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "insert into studetail values('" + textBox1.Text + "','" + textBox2.Text + "','" + gen + "','" + textBox3.Text + "','" + clas + "','" + section + "')";
cmd.Connection = cn;
int n = cmd.ExecuteNonQuery();
if (n > 0)
MessageBox.Show(n + " Row Inserted.");
else
MessageBox.Show("Insertion failed.");
SqlDataAdapter da = new SqlDataAdapter("select * from studetail ", cn);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
您可以在插入之前添加删除:
private void save_Click(object sender, EventArgs e)
{
DeletePerson(id); // add this
SqlConnection cn = new SqlConnection();
...
}
public void DeletePerson(int id)
{
using(SqlConnection connection = new SqlConnection(credentials))
{
connection.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = connection;
cmd.CommandText = "delete from studetail where someUniqeIdColumn = " + id;
cmd.ExecuteNonQuery();
}
}
使用responsible来处理连接。
考虑使用或。
你暴露在危险之中。
首先,SQL查询并不完全正确。它应该如下所示:
INSERT INTO studetail (columnName1, columnName2, ...columnNameN)
VALUES (value1, value2, ...valueN);
其中,列名是要插入数据的列,值是要插入到所述列中的数据
您还应该通过在using语句中包装连接来处理连接
using(var con = new SqlConnection(connectionString))
{
con.Open();
//rest of code that needs a connection here
}
此外,您需要警惕SQL注入。我强烈推荐MSDN网站上的例子。它将为您提供一个使用SQL更新和使用SqlCommand.Paramaters属性避免SQL注入的示例
如果还没有主键,那么数据库表中也应该有主键,这样就可以唯一地标识表中的每条记录
要在同一按钮上执行更新和保存,需要检查正在编辑的数据是否已经存在行。这是当一个主要的派上用场的时候。您需要检查数据库,以查看记录是否已存在
SELECT 1 FROM studetail WHERE <Condition>
WHERE条件是在表中唯一标识主键和行的方式。如果表中的行是唯一标识的,那么如果存在值,上面的SQL语句将返回1,这意味着您可以更新,如果不存在记录,则返回0,因此您可以插入您在每一行中都有唯一的id吗?