私は同様の質問を見つけましたが、答えが役に立たなかったか、私に当てはまりませんでした。DataGridViewを充填するためのスカラー変数 - SQLパラメーターを宣言しなければならない
Visual Studio 2013、C#、およびT-SQLというデータベースエンジンを使用しています。
SQLコマンドは、パラメータを具体的な値で置き換えるとうまく動作します。しかし、私はそこにパラメータが必要です。
私はこのエラーを取得しない:この行で
Must declare the scalar variable "@Collection1".
:
myydata.Fill(myytab);
どんなに私は何をすべきか、@Collection1
だけで宣言することはしたくないこと。
string stringcommand = "select Name, Collection, Text from Card_List where Collection IN" +
"(select Shortcut from Collections where Collection Like @Collection1)";
SqlConnection myConnection = new SqlConnection(stringconnection);
SqlCommand myCommand = new SqlCommand(stringcommand, myConnection);
// Tried to declare parameter 5 times here, unsuccessfully
myCommand.Parameters.Add(new SqlParameter("Collection1", string1));
myCommand.Parameters.Add("@Collection1", SqlDbType.NVarChar).Value = string1;
myCommand.Parameters["@Collection1"].Value = string1;
myCommand.Parameters.AddWithValue("@Collection1", string1);
SqlParameter Param1 = myCommand.Parameters.Add("@Collection1", SqlDbType.NVarChar);
Param1.Value = string1;
SqlDataAdapter myydata = new SqlDataAdapter();
myydata.SelectCommand = new SqlCommand(stringcommand, myConnection);
myConnection.Open();
DataTable myytab = new DataTable();
myydata.Fill(myytab);
BindingSource bsour = new BindingSource();
bsour.DataSource = myytab;
dataGridView1.DataSource = bsour;
myydata.Update(myytab);
myConnection.Close();
複数のパラメータを追加しています。一度だけ追加する必要があります。 – JonBrave
@JonBrave私はOPが彼が試したすべての方法を示していると思う。私は彼がすぐにそれらのすべてを試していないと確信しています。 –
ああ!次に、 'myCommand'は' myydata.SelectCommand = new SqlCommand(stringcommand、myConnection);で使用されています。したがって、実際にSQL文に渡されるパラメータはありません。 – JonBrave