2 tan078 Tan078 于 2017.09.12 17:33 提问

C#如何判断一个表是否存在

写了一个查询语句能够查到对应的表,但是在程序里对结果集应该用什么方法去判断?
string sql = "select * from information_schema.TABLES where Table_NAME ='tbl_1_1_1_MeasurementData'";图片说明

2个回答

fight_in_dl
fight_in_dl   Ds   Rxr 2017.09.12 18:26
已采纳

可以这样:

string connStr = "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword";
string cmdStr = "select * from information_schema.TABLES where Table_NAME ='tbl_1_1_1_MeasurementData'";

using (MySqlConnection conn = new MySqlConnection(connStr))
{
    MySqlCommand cmd = new MySqlCommand(cmdStr, conn);
    conn.Open();
    MySqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
       int count = reader.GetInt32(0);
       if (count == 0)
       {
           MessageBox.Show("该表不存在!");
       }
       else if (count == 1)
       {
           MessageBox.Show("该表存在!");
       }
    }
}

说明:
1 connStr和cmdStr两个字符串请根据情况调整检查。
2 需要import相应namespace。

如果对您有帮助,请采纳答案好吗,谢谢!

Tan078
Tan078 查询语句string sql = "select table_name from information_schema.TABLES where Table_NAME ='tbl_1_1_1_MeasurementData'";然后再用ToScalar(); //返回单个值,判断是否为空就解决了
10 天之前 回复
fight_in_dl
fight_in_dl 回复Tan078: 可以结题,另开一个问题好吗?
11 天之前 回复
Tan078
Tan078 感谢您的回答,我想问另一个问题:在Dos.ORM下,连接语句已经写好,使用Fromsql()该怎么实现对表是否存在的判断呢?
11 天之前 回复
XianRenShan
XianRenShan   2017.09.12 17:45

我觉得你可以用Dt.rows.count ,如果这个值大于0,则表示表存在,反之则无

Tan078
Tan078 你说的这个方法,我试过了,但是报错了:“该方法(Count)只能用于Dos.ORM lambda表达式!”
11 天之前 回复
Csdn user default icon
上传中...
上传图片
插入图片