0

私はこのC#コードを書いて、1つのcard_idを除いて学生情報からcard_idを選択しましたが、ネットからexcept句がアクセスで機能しないことを読みました...どうすればこれを行うことができますか?

ol_com.CommandText = "select [card_id] from student_info except select [card_id] from student_info where [card_id] = '"+update_st_card.Text+"'";
                reader = ol_com.ExecuteReader();
                if (reader.HasRows)
                {
                    up_st_lbl2.Text = "message";
                }
4

4 に答える 4

3

不必要に複雑なクエリを作成していると思います。

を使えば簡単に解決できますNOT IN

ol_com.CommandText = "select [card_id] from student_info 
where [card_id] not in ('"+update_st_card.Text+"')";
于 2013-07-22T11:58:31.003 に答える
1

挿入に問題はありませんので、更新のためにこの簡単なものを試してください。update_st_card.Text には card_Id が 1 つだけあります。

ol_com.CommandText = "select [card_id] from student_info 
where [card_id] ='"+update_st_card.Text+"'";
reader = ol_com.ExecuteReader();
string str=string.Empty();
if (reader.HasRows)
{
  //Update here
    str="Update student_info set mobile_no='Your new value to set'
             where [card_id] ='"+update_st_card.Text+"'";

}
else
{
  //insert here
    str="Your Insert command";
}
ol_com.CommandText = str;
ol_com.ExecuteNonQuery();
于 2013-07-26T14:11:22.717 に答える
0

これで問題が解決すると思います。どこでもアクセス、SQLサーバー、nhibernateを使用できません

ol_com.CommandText = "select [card_id] from student_info where [card_id] not in ( select [card_id] from student_info where [card_id] = '"+update_st_card.Text+"'");
reader = ol_com.ExecuteReader();
if (reader.HasRows)
{
   up_st_lbl2.Text = "message";
}
于 2013-07-22T11:57:29.177 に答える
0

NOT IN を使用できると思います

クエリは次のように記述できます。

select [card_id] 
from student_info 
where [card_id] NOT IN 
 (select [card_id] from student_info where [card_id] = '"+update_st_card.Text+"'")
于 2013-07-22T11:57:44.577 に答える