Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查数据库中是否存在输入的表?_C# - Fatal编程技术网

C# 如何检查数据库中是否存在输入的表?

C# 如何检查数据库中是否存在输入的表?,c#,C#,我试过用这个代码 string tabExist = "IF EXIST ( SELECT [name] FROM sys.table WHERE [name]=" + combCustomerName.Text + "" + ")"; SqlCommand tabExistCmd = new SqlCommand(tabExist, con); tabExistCmd.ExecuteNonQuery(); 它在关键字“SELECT”附近显示异常错误语法。 关键

我试过用这个代码

string tabExist = "IF EXIST ( SELECT [name] FROM sys.table WHERE [name]=" + combCustomerName.Text + "" + ")";
        SqlCommand tabExistCmd = new SqlCommand(tabExist, con);
        tabExistCmd.ExecuteNonQuery();
它在关键字“SELECT”附近显示异常错误语法。 关键字“table”附近的语法不正确


请帮我解决这个问题。

您可能只需要写下名称,并在查询中使用参数,而不是明文连接

您要使用此选项:

IF OBJECT_ID(N'tablenamehere') IS NOT NULL [whatever else you want to do here]
试试这个

string tabExist = "IF EXIST ( SELECT * FROM sys.Tables WHERE TABLE_NAME =" + combCustomerName.Text +")";
    SqlCommand tabExistCmd = new SqlCommand(tabExist, con);
    tabExistCmd.ExecuteNonQuery();
试试这个

string tabExist = "IF EXIST ( SELECT count(*) FROM sys.Tables WHERE TABLE_NAME =" + combCustomerName.Text +")";
        SqlCommand tabExistCmd = new SqlCommand(tabExist, con);
        if((int)tabExistCmd.ExecuteScalar()>0)
        {
          //Table Exist
        }
        else
        {
          //Table does not exist
        }

谓词称为
EXISTS
,如果称为
sys.tables
,则测试所针对的表/视图,最后需要引用名称,因此请尝试以下操作:

string tabExist = "IF EXISTS ( SELECT [name] FROM sys.tables WHERE [name] = '" + combCustomerName.Text + "')";
您的查询也是不完整的,因为它声明如果条件为真,您希望执行某些操作,但您从未声明要执行的操作。有效查询将使用以下表单:

IF EXISTS ( SELECT [name] FROM sys.tables WHERE [name]='Orders') SELECT 'TRUE' AS Status
如果表存在,则返回字符串值
TRUE


此外,您确实不应该对参数进行串联,而应该在命令对象中使用占位符和参数。

您是否试图在此处返回布尔值?或者测试是否存在,然后在一个查询中执行其他操作?如果表存在,我希望打印为表存在