は、MSSQLでこのクエリを書いた:C#でクエリが正しく実行されないのはなぜですか?
SELECT Code, Description,LEAD(Code, 1) OVER (ORDER BY code) AS next_code FROM Liguanea_Lane WHERE code LIKE '%88%'
を、それはコンボボックス名からの入力を受け付けているだけで、この時間は「検索」ボタンのクリック時に実行される私のC#コードで同じクエリをバック書きました。これは、それは以下の通りです:
private void button1_Click(object sender, EventArgs e)
{
try
{
string connectionString = "Data Source=JAVY26;Initial Catalog=Pharmacies;Integrated Security=True";
SqlConnection con = new SqlConnection(connectionString);
con.Open();
string query = "SELECT Code, Description,LEAD(Code, 1) OVER (ORDER BY code) AS next_code FROM Liguanea_Lane WHERE code LIKE '%" + search.Text+"%'; ";
SqlCommand cmd = new SqlCommand(query, con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string scode = dr.GetString(dr.GetOrdinal("next_code"));
textBox2.Text = scode;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
私の問題は、私はなっておくことである:「。データがNULLであるこのメソッドまたはプロパティがNULL値で呼び出すことはできません」コード内のクエリが間違っていますか?それは私のSQL Serverで正常に動作します。 、これはこれでユーザーの介入なしにループである
while (dr.Read())
{
string scode = dr.GetString(dr.GetOrdinal("next_code"));
textBox2.Text = scode;
}
クエリが3行を返すとします:
最初に、パラメータ化されたクエリについて読んでください。第2に、 'Code'は返り値セットにヌル値を持つことがあります。クエリは正常に実行されますが、 'dr.GetString()'はnull値での操作を拒否しています。 – Rob
間違いなくそれを探します。おかげでロブ。感謝します。 SQL Serverでクエリを実行するとヌル値はありません – Jevon
デバッグを介して 'query'変数の値が元のSQLクエリと正確に一致することを確認しましたか? – DeanOC