C# 无法正确访问SqlCommand类型

C# 无法正确访问SqlCommand类型,c#,visual-studio-2015,C#,Visual Studio 2015,我目前正在我的项目中制作第二个表单。我的SQL命令是一个更新命令,它将编辑现有行,因此我的表单将在CellMouseDoubleClick事件中打开,以便我可以编辑行、提交更改,然后更新数据库。 理想情况下,我希望在代码的开头有这两行代码 public partial class EditData : Form { SqlConnection strCon = new SqlConnection("Data Source=.;Initial Catalog=CQ_DAT

我目前正在我的项目中制作第二个表单。我的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;
然后我简单地执行非查询

strCon.Open(); //OPEN CONNECTION
                //searchCommand.CommandText = "SP_UpdateQuery";
                searchCommand.ExecuteNonQuery();
                strCon.Close();
我试图使用全局变量,每当我运行表单两次时都会遇到一些问题。无论如何,我从来都不想坚持使用globals,所以有人能对我的逻辑或代码提出一些改进建议吗? 关键的两条线

SqlConnection strCon = new SqlConnection("Data Source=.;Initial Catalog=CQ_DATA;Integrated Security=True;");
SqlCommand searchCommand = new SqlCommand("SP_UpdateQuery", strCon);
我应该把它们放在哪里/如何更好地使用它们

谢谢你的时间

简单修复。 只需不初始化要开始的值

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