1

私はこのコードを持っていて、実行するとこのエラーが発生しますExecuteNonQuery:接続プロパティが初期化されていません。そして私はSQLデータベースを持っています。その名前はコストです。私はこのコードを持っていて、実行するとこのエラーが発生しますExecuteNonQuery:接続プロパティが初期化されていません。そして私は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);
        }
    }
}
4

4 に答える 4

3

以下のようにsqlコマンドに接続を割り当てる必要があります。あなたはそうするのを忘れているようです。

cmd.Connection = conn;
于 2012-07-24T09:49:36.730 に答える
3

コマンドを接続に接続していません。

cmd.Connection = conn;

そして、コマンドを実行した後、それを閉じる必要があります。

conn.Close();
于 2012-07-24T09:57:09.620 に答える
1

実行する前に、SqlConnectionをSqlCommandに接続するだけです。

cmd.Connection = conn;

Connectionオブジェクトは、基盤となるデータベースエンジンにコマンドを配信するツールです。
データベースにアクセスしたい場合は、コマンドにそれを組み込む必要があります。

この方法を使用して、接続から直接コマンドを作成することをお勧めします。

   SqlCommand cmd = conn.CreateCommand();
于 2012-07-24T09:47:57.200 に答える
1

コマンドに接続を渡す必要があります

SqlCommand cmd = new SqlCommand(conn);

また

cmd.Connection = conn;
于 2012-07-24T09:48:13.213 に答える