附加信息:ExecuteNonQuery:尚未初始化Connection属性。 [英] Additional information: ExecuteNonQuery: Connection property has not been initialized.

查看:74
本文介绍了附加信息:ExecuteNonQuery:尚未初始化Connection属性。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用System;

使用System.Collections.Generic;

使用System.ComponentModel;

使用System.Data;

使用System.Drawing;

使用System.Linq;

使用System.Text;

使用System。 Threading.Tasks;

使用System.Windows.Forms;

使用System.Data.OleDb;

使用System.Data.SqlClient; < br $>




命名空间Stock_Control_System

{

  &NBSP;公共部分类产品:表格

  &NBSP; {

  &NBSP; &NBSP; &NBSP; SqlConnection con = new SqlConnection(@"Data Source = INFINITY; Initial Catalog = Stock; Integrated Security = True"); //建立联系   

  &NBSP; &NBSP; &NBSP; SqlCommand cmd;

  &NBSP; &NBSP; &NBSP; SqlDataAdapter适应;

  &NBSP; &NBSP; &NBSP; //更新和删除记录中使用的ID变量  

  &NBSP; &NBSP; &NBSP; int ID = 0;

  &NBSP; &NBSP; &NBSP;公共产品()

  &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; InitializeComponent();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; DisplayData();

  &NBSP; &NBSP; &NBSP; }


  &NBSP; &NBSP; &NBSP; private void Products_Load(object sender,EventArgs e)

  &NBSP; &NBSP; &NBSP; {

$
  &NBSP; &NBSP; &NBSP; }


  &NBSP; &NBSP; &NBSP; private void btnadd_Click(object sender,EventArgs e)

  &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; if(txtprocode.Text!=""&& txtproname.Text!=""&& txtprotype.Text!=""&& txtbrand.Text!="" && txtquantity.Text!=""&&
txtmeter.Text!=""&& txtprice.Text!="")

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; cmd = new SqlCommand(@" INSERT INTO [dbo]。[Product]([ProductCode],[ProductName],[ProductType],[Brand],[Quantity],[Meter],[Price]) 

       VALUES(@ ProductCode,@ ProductName,@ ProductType,@ Brand,@ Quantity,@ Meter,@ Price)");

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; con.Open();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; cmd.Parameters.AddWithValue(" @@ ProductCode",txtprocode.Text);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; cmd.Parameters.AddWithValue(" @@ ProductName",txtproname.Text);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; cmd.Parameters.AddWithValue(" @@ ProductType",txtprotype.Text);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; cmd.Parameters.AddWithValue(" @ Brand",txtbrand.Text);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; cmd.Parameters.AddWithValue(" @ Quantity",txtquantity.Text);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; cmd.Parameters.AddWithValue(" @ Meter",txtmeter.Text);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; cmd.Parameters.AddWithValue(" @ Price",txtprice.Text);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; cmd.ExecuteNonQuery(); //错误突出显示此代码

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; con.Close();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; MessageBox.Show(" Record Inserted Successfully");

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; DisplayData();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; ClearData();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; }¥b $ b  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;否则

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; MessageBox.Show(" Please Provide Details!");

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; }¥b $ b  &NBSP; &NBSP; &NBSP; }¥b $ b  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;   //在DataGridView中显示数据  

  &NBSP; &NBSP; &NBSP; private void DisplayData()

  &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; con.Open();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; DataTable dt = new DataTable();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; adapt = new SqlDataAdapter(" select * from [dbo]。[Product]",con);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; adapt.Fill(dt);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; dataGridView1.DataSource = dt;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; con.Close();

  &NBSP; &NBSP; &NBSP; }¥b $ b  &NBSP; &NBSP; &NBSP; //清除数据  

  &NBSP; &NBSP; &NBSP; private void ClearData()

  &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; txtprocode.Text ="" ;;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; txtproname.Text ="" ;;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; txtprotype.Text ="" ;;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; txtbrand.Text ="" ;;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; txtquantity.Text ="" ;;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; txtmeter.Text ="" ;;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; txtprice.Text ="" ;; $


  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; ID = 0;

  &NBSP; &NBSP; &NBSP; }


  &NBSP; &NBSP; &NBSP; private void dataGridView1_CellContentClick(object sender,DataGridViewCellEventArgs e)

  &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; ID = Convert.ToInt32(dataGridView1.Rows [e.RowIndex] .Cells [0] .Value.ToString());
$


  &NBSP; &NBSP; &NBSP; }¥b $ b  &NBSP; }¥b $ b  &NBSP; }

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.SqlClient;


namespace Stock_Control_System
{
    public partial class Products : Form
    {
        SqlConnection con = new SqlConnection(@"Data Source = INFINITY; Initial Catalog = Stock; Integrated Security = True"); // making connection   
        SqlCommand cmd;
        SqlDataAdapter adapt;
        //ID variable used in Updating and Deleting Record  
        int ID = 0;
        public Products()
        {
            InitializeComponent();
            DisplayData();
        }

        private void Products_Load(object sender, EventArgs e)
        {

        }

        private void btnadd_Click(object sender, EventArgs e)
        {
            if (txtprocode.Text != "" && txtproname.Text != "" && txtprotype.Text != "" && txtbrand.Text != "" && txtquantity.Text != "" && txtmeter.Text != "" && txtprice.Text != "")
            {
                cmd = new SqlCommand(@"INSERT INTO [dbo].[Product]([ProductCode],[ProductName],[ProductType],[Brand],[Quantity],[Meter],[Price]) 
            VALUES(@ProductCode,@ProductName,@ProductType,@Brand,@Quantity,@Meter,@Price)");
                con.Open();
                cmd.Parameters.AddWithValue("@ProductCode", txtprocode.Text);
                cmd.Parameters.AddWithValue("@ProductName", txtproname.Text);
                cmd.Parameters.AddWithValue("@ProductType", txtprotype.Text);
                cmd.Parameters.AddWithValue("@Brand", txtbrand.Text);
                cmd.Parameters.AddWithValue("@Quantity", txtquantity.Text);
                cmd.Parameters.AddWithValue("@Meter", txtmeter.Text);
                cmd.Parameters.AddWithValue("@Price", txtprice.Text);
                cmd.ExecuteNonQuery(); // the error highlights this code
                con.Close();
                MessageBox.Show("Record Inserted Successfully");
                DisplayData();
                ClearData();
            }
            else
            {
                MessageBox.Show("Please Provide Details!");
            }
        }
             //Display Data in DataGridView  
        private void DisplayData()
        {
            con.Open();
            DataTable dt = new DataTable();
            adapt = new SqlDataAdapter("select * from [dbo].[Product]", con);
            adapt.Fill(dt);
            dataGridView1.DataSource = dt;
            con.Close();
        }
        //Clear Data  
        private void ClearData()
        {
            txtprocode.Text = "";
            txtproname.Text = "";
            txtprotype.Text = "";
            txtbrand.Text = "";
            txtquantity.Text = "";
            txtmeter.Text = "";
            txtprice.Text = "";

            ID = 0;
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            ID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());

        }
    }
    }

请帮助我带着这个 

Please help me out with this 

谢谢你

推荐答案

您好,

该命令需要连接如下所示。

The command needs a connection as per below.

static void Demo()
{
    var insertStatement = 
        "INSERT INTO [dbo].[Product]([ProductCode],[ProductName],[ProductType],[Brand],[Quantity],[Meter],[Price]) " + 
        "VALUES(@ProductCode,@ProductName,@ProductType,@Brand,@Quantity,@Meter,@Price)";

    using (var cn = new SqlConnection(@"Data Source = INFINITY; Initial Catalog = Stock; Integrated Security = True"))
    {
        using (var cmd = new SqlCommand(insertStatement, cn) )
        {
            
        }
    }
}


注意最好创建一个连接和命令对象,而不是私有范围的连接。

Note it's best to create a connection and command object as needed rather than having a privately scoped connection.


这篇关于附加信息:ExecuteNonQuery:尚未初始化Connection属性。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆