1

こんにちは皆さん、私はこのコードを持っています。これで簡単なことをしたいと思います:

SELECT * FROM klisluz WHERE IDzajsluz= id
SELECT * FROM klisluz WHERE subkey = vyberradek

しかし、この単純なことがこの問題を引き起こします。現時点では、サブキーが と等しくない行が表示されていますvyberradek。そんなことがあるものか?

vyberradek私がINT経由して転送するIDですstring

 for (int i = 0; i < dtg_ksluzby.Rows.Count;i++)
            {
                var row = dtg_ksluzby.Rows[i];
                int id = (int)row.Cells["ID"].Value;

                using (var novyprikaz3 = new SqlCommand("SELECT * from klisluz WHERE subkey= '" + vyberradek + "' AND IDzajsluz='" + id + "'", spojeni))
                {

                    spojeni.Open();
                    SqlDataReader precti3 = novyprikaz3.ExecuteReader();
                    if (precti3.HasRows)
                    {
                        row.Cells[4].Value = true;
                    }
                    spojeni.Close();
                }

誰かが私がこの問題を解決するのを手伝ってくれますか? 前もって感謝します。 ここに画像の説明を入力

すべきではない行を選択することを示す画像を投稿しました。

4

1 に答える 1

3

IDzajsluzフィルターから引用符を削除してみてください。

   for (int i = 0; i < dtg_ksluzby.Rows.Count;i++)
        {
            var row = dtg_ksluzby.Rows[i];
            int id = (int)row.Cells["ID"].Value;

            using (var novyprikaz3 = new SqlCommand("SELECT * from klisluz WHERE subkey= '" + vyberradek + "' AND IDzajsluz=" + id , spojeni))
            {

                spojeni.Open();
                SqlDataReader precti3 = novyprikaz3.ExecuteReader();
                if (precti3.HasRows)
                {
                    row.Cells[4].Value = true;
                }
                spojeni.Close();
            }
        }

引用符 ('') は、数値ではなく、varchar フィールドにのみ使用する必要があります。

編集: この場合、LIKE は適切ではありません。実際に数値である場合は、数値型を使用する必要があります。

于 2013-07-18T14:57:03.133 に答える