附加信息:ExecuteNonQuery:尚未初始化Connection属性。 [英] Additional information: ExecuteNonQuery: Connection property has not been initialized.
问题描述
使用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屋!