我有这段代码,当我运行它时会出现此错误ExecuteNonQuery:Connection属性尚未初始化。 我有sql数据库。 它的名字是成本。 我有这个代码,当我运行它时出现此错误ExecuteNonQuery:Connection属性尚未初始化。 我有sql数据库。 它的名字是成本。 我的代码是:
namespace Accountingss
{
public partial class WebForm1 : System.Web.UI.Page
{
public SqlConnection conn;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Connect(string cmdtxt, Hashtable parameters)
{
conn = new SqlConnection();
string connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Cost.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
conn.ConnectionString = connString;
SqlCommand cmd = new SqlCommand();
cmd.CommandText = cmdtxt;
cmd.Parameters.Clear();
var ieParams = parameters.GetEnumerator();
while (ieParams.MoveNext())
{
cmd.Parameters.AddWithValue(ieParams.Key.ToString(), ieParams.Value.ToString());
//cmd.Parameters.Add(new SqlParameter(ieParams.Key.ToString(), ieParams.Value.ToString()));
}
conn.Open();
cmd.ExecuteNonQuery();
//SqlDataAdapter costdataAdpater = new SqlDataAdapter();
//DataTable costdataTable = new DataTable();
}
protected void Button1_Click(object sender, EventArgs e)
{
string insert = "INSERT INTO Cost (Type, Amount) VALUES (@type, @amount)";// +type.Text + ',' + a.Text + ")";
var addpTA = new Hashtable();
addpTA.Add("@type", txtType.Text);
addpTA.Add("@amount", txtAmount.Text);
Connect(insert, addpTA);
}
}
}
答案 0 :(得分:3)
您必须像下面那样为sql命令分配连接。你似乎忘记了这样做。
cmd.Connection = conn;
答案 1 :(得分:3)
您没有将命令连接到连接。
cmd.Connection = conn;
执行命令后你应该关闭它。
conn.Close();
答案 2 :(得分:1)
在执行
之前,只需将SqlConnection连接到SqlCommand即可cmd.Connection = conn;
Connection对象是将命令传递给底层数据库引擎的工具 如果我们想要访问数据库,我们需要将它连接到我们的命令。
一个好的捷径是使用此方法直接从连接创建命令
SqlCommand cmd = conn.CreateCommand();
答案 3 :(得分:1)
您应该将连接传递给命令
SqlCommand cmd = new SqlCommand(conn);
或
cmd.Connection = conn;