无法正确访问SqlCommand类型

时间:2017-03-23 05:35:47

标签: c# visual-studio-2015

我目前正在我的项目中处理第二个表单。我的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);

我应该把它们放在哪里/我应该如何更好地使用它们?

谢谢你的时间!

1 个答案:

答案 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);