2017-11-19 7 views
0

私は同様の質問を見つけましたが、答えが役に立たなかったか、私に当てはまりませんでした。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(); 
+0

複数のパラメータを追加しています。一度だけ追加する必要があります。 – JonBrave

+0

@JonBrave私はOPが彼が試したすべての方法を示していると思う。私は彼がすぐにそれらのすべてを試していないと確信しています。 –

+1

ああ!次に、 'myCommand'は' myydata.SelectCommand = new SqlCommand(stringcommand、myConnection);で使用されています。したがって、実際にSQL文に渡されるパラメータはありません。 – JonBrave

答えて

1

あなたはSqlCommand myCommandあなたのような、myydata.SelectCommandとして使用するように設定したい:

myCommand.Parameters.Add(new SqlParameter("Collection1", string1)); 
myydata.SelectCommand = myCommand; 

あなたはmyydata.SelectCommand = new SqlCommand(stringcommand, myConnection);でそれを持っている方法は、そのコマンドがコマンドで@Collection1を持っていますが、なくても接続されたパラメータにはMust declare the scalar variable "@Collection1".エラーが発生します。

+1

私は間違いを見ます。ありがとうございました! – Matthew

関連する問題