如果使用 C# 的 MS 访问数据库中存在数据,则发出警报消息

本文关键字:数据 消息 存在 MS 数据库 访问 如果 | 更新日期: 2023-09-27 18:27:27

OleDbCommand cmd1 = new OleDbCommand("select * from patient_det", con);
int count = (int)cmd1.ExecuteScalar();
if (count > 0)
{ 
   Response.Write("<script>alert('Data Existed!!')</script>");
}
else
{  
    OleDbCommand cmd2 = new OleDbCommand("insert into patient_det values('" + st1 + "' , '" + i1 + "' , '" + i2 + "' , '" + i3 + "' , '" + p1 + "')", con);
    cmd2.ExecuteNonQuery();
    int temp = cmd2.ExecuteNonQuery();
    Response.Write("<script>alert('Registered Successfully!!')</script>");
} 

此代码显示错误,例如

指定的强制转换无效

如何解决?

如果使用 C# 的 MS 访问数据库中存在数据,则发出警报消息

问题可能出在以下行:

int count = (int)cmd1.ExecuteScalar();

这是 ExecuteScalar 的签名:

public override object ExecuteScalar()

使用 ExecuteScalar 的查询"从patient_det中选择 *"将返回表第一行第一列上的元素,因此返回的数据类型将是表之一。

我找到了这个问题的解决方案。

    int Count;
    con.Open();
        OleDbCommand cmd = new OleDbCommand("SELECT * FROM TABLENAME WHERE   COLUMNNAME= '" + TXT1.Text + "'", con);
        OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
        DataTable dt = new DataTable();
        adapter.Fill(dt);
        if (dt.Rows.Count == 0)
        {
//Insert Query
           Response.Write("<script>alert('Added Successfully!!')</script>");
         }else
         {
            Response.Write("<script>alert('Data is Exist!!')</script>");
        }