我目前正在我的项目中处理第二个表单。我的SQL命令是一个更新命令,它将编辑现有行,因此我的表单将在CellMouseDoubleClick
事件上打开,以便我可以编辑该行,提交更改,然后更新数据库。
理想情况下,我希望在代码的开头有这两行。
public partial class EditData : Form
{
SqlConnection strCon = new SqlConnection("Data Source=.;Initial Catalog=CQ_DATA;Integrated Security=True;");
SqlCommand searchCommand = new SqlCommand("SP_UpdateQuery", strCon);
但显然我不能,因为这会导致编译器出错。
我希望这样做,因为我有两个功能。
首先:
public EditData(string name, string surname, string CompName, string Address, string MoNo, string PoNo, string AreaCode, string Email, string Date)
从双击事件中获取行的初始值并将其加载到某些文本框中,并将这些值保存为sqlCommand中的原始参数,例如
txtName.Text = name;
searchCommand.Parameters.Add("@Name", SqlDbType.NVarChar).Value = txtName.Text;
然后我有一个提交按钮
private void btnSubmit_Click(object sender, EventArgs e)
使用我之前编写和测试的验证码重新验证我的所有文本框。在检查它们是否有效后,我将这些作为参数添加到我想要将旧的更改为
searchCommand.Parameters.Add("@NewName", SqlDbType.NVarChar).Value = txtName.Text;
然后我只执行Nonquery。
strCon.Open(); //OPEN CONNECTION
//searchCommand.CommandText = "SP_UpdateQuery";
searchCommand.ExecuteNonQuery();
strCon.Close();
我尝试使用全局变量,每当我运行表单两次时遇到了一些问题。无论如何我从来都不想坚持使用全局变量,所以有人可以建议对我的逻辑或代码进行一些改进吗? 关键的两行
SqlConnection strCon = new SqlConnection("Data Source=.;Initial Catalog=CQ_DATA;Integrated Security=True;");
SqlCommand searchCommand = new SqlCommand("SP_UpdateQuery", strCon);
我应该把它们放在哪里/我应该如何更好地使用它们?
谢谢你的时间!
答案 0 :(得分:0)
简单修复。 只是不要开始初始化值。
SqlConnection strCon = new SqlConnection("Data Source=.;Initial Catalog=CQ_DATA;Integrated Security=True;");
SqlCommand searchCommand;
而是将它放在首先出现的构造函数中,然后再进行一次。
public EditData(string name, string surname, string CompName, string Address, string MoNo, string PoNo, string AreaCode, string Email, string Date)
{
searchCommand = new SqlCommand("SP_UpdateQuery", strCon);