Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “C”;InvalidOperationException:ExecuteOnQuery";例外情况_C#_Sql Server Express_Invalidoperationexception - Fatal编程技术网

C# “C”;InvalidOperationException:ExecuteOnQuery";例外情况

C# “C”;InvalidOperationException:ExecuteOnQuery";例外情况,c#,sql-server-express,invalidoperationexception,C#,Sql Server Express,Invalidoperationexception,当我试图通过我创建的软件将一些数据保存到我的sql(express)时,我出现了这个错误 System.Data.dll中发生类型为“System.InvalidOperationException”的未处理异常。 其他信息:ExecuteOnQuery:尚未初始化连接属性 以下是我的代码: private void save_medicine_Click(object sender, EventArgs e) { cn.Open(); if (

当我试图通过我创建的软件将一些数据保存到我的sql(express)时,我出现了这个错误

System.Data.dll中发生类型为“System.InvalidOperationException”的未处理异常。 其他信息:ExecuteOnQuery:尚未初始化连接属性

以下是我的代码:

    private void save_medicine_Click(object sender, EventArgs e)
    {
        cn.Open();

        if (nameBox.Text != "" & companyBox.Text != "" & categoryBox.Text != "" & 
           amountBox.Text != "" & restockBox.Text != "" & buyBox.Text != "" & 
           sellBox.Text != "" & qualityComboBox.Text !=""  )
        {
            cmd.CommandText = "insert into drug_info (name,company_id,category,
                               expiration_date,stock_level,
                               critical_level_drug,cost_buy,cost_sell,drug_quality) 
                               values ('"+nameBox.Text+"','"+companyBox.Text+"','"+
                               categoryBox.Text+"','"+dateTimePicker1+"','"+amountBox+"','"
                                +restockBox+"','"+buyBox+"','"+sellBox+"','"
                                +qualityComboBox+"')";
            cmd.ExecuteNonQuery();
            cmd.Clone();

        }
    }
}

rMedecine\u reg\u load
中有一个类变量
cn
和一个局部变量
cn
。这似乎不对

该错误只是意味着在为其分配连接之前尝试使用
cmd

像这样尝试

     if (nameBox.Text != "" & companyBox.Text != "" & categoryBox.Text != "" &  amountBox.Text != "" & restockBox.Text != "" & buyBox.Text != "" & sellBox.Text != "" & qualityComboBox.Text !=""  )
    {

        string sql = "insert into drug_info (name,company_id,category,expiration_date,stock_level,critical_level_drug,cost_buy,cost_sell,drug_quality) values ('"+nameBox.Text+"','"+companyBox.Text+"','"+categoryBox.Text+"','"+dateTimePicker1+"','"+amountBox+"','"+restockBox+"','"+buyBox+"','"+sellBox+"','"+qualityComboBox+"')";
        SqlCommand cmd = new SqlCommand(sql,cn);
        cn.Open();
        cmd.ExecuteNonQuery();
        cn.Close();
        MessageBox.Show("Τα στοιχεία καταχωρήθηκαν στη Βάση");
    }

那可能行得通。。虽然我不知道为什么像“amountBox”和“buyBox”这样的值没有附加.Text。我不知道这些值来自何处,但如果它们是文本框,您可能需要添加.Text。如果是,并且您尝试将它们插入数据库,这样您将得到一个错误,因为您无法在数据库中插入具有“文本框”类型的内容。

首先:使用参数。你可以读到他们

另一件事是这句话:

cmd.Clone();
我打赌你想关闭命令。但是没有办法关闭SqlCommand。把电话线拔下来


你也应该像其他答案中提到的那样,用2个连接来清理混乱

你为什么发布代码截图?根本不可读。请把代码贴出来。好的,我找到我该做的了。。现在我遇到了另一个错误,System.Data.dll中发生了类型为“System.Data.SqlClient.SqlException”的未处理异常。其他信息:从字符串转换日期和/或时间时转换失败。实际上,您可能应该使用cmd=cn.CreateCommand()或cmd=new SqlCommand(cn)初始化cmd(我认为语法是)如果我添加.text,它们在我的数据库中是int,它将停止。因此我试图找到我必须在末尾添加的内容。尝试转换.ToInt32(amountBox.text),这应该将它们解析为整数。dateTimepicker,这是一个jquery时间选择器吗?因为你也必须解析它,那么好吧,我已经按照你告诉我的方式添加了所有int@myDB将.ToInt32和我的decimal@myDBconvert.ToDouble但我现在遇到了此错误..其他信息:算术溢出错误转换varchar到数据类型numeric。但是我所有的nvarchar文本框都像这个文本框。text。。。