gpt4 book ai didi

c# - SQL检查表是否存在于C#中,如果不存在则创建

转载 作者:行者123 更新时间:2023-11-30 19:09:45 26 4
gpt4 key购买 nike

我想我几乎看过与这个问题相关的每一页,最有可能的答案是 Check if a SQL table exists但并没有真正理解它。这是我得到的:

    private void select_btn_Click(object sender, EventArgs e)
{
string theDate = dateTimePicker1.Value.ToString("dd-MM-yyyy");
SqlConnection SC = new SqlConnection("Data Source=ruudpc;Initial Catalog=leden;Integrated Security=True");
SqlCommand DateCheck = new SqlCommand("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '" + theDate + "'");
}

现在我想要 DateCheck.ExecuteScalar() 的返回值;可以告诉我它是否存在,可能非常简单。

编辑

不管 sql 注入(inject)部分,对于某些人来说这个问题是有帮助的,动态创建表通常是不好的做法,我建议您重新考虑您的 ERD。只是说。

最佳答案

使用 IF EXISTS T-SQL

private void select_btn_Click(object sender, EventArgs e)
{
string theDate = dateTimePicker1.Value.ToString("dd-MM-yyyy");

// Enclose the connection inside a using statement to close and dispose
// when you don't need anymore the connection (to free local and server resources)
using(SqlConnection SC = new SqlConnection("Data Source=ruudpc;Initial Catalog=leden;Integrated Security=True"))
{
// Sql command with parameter
string cmdText = @"IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME=@name) SELECT 1 ELSE SELECT 0";
SC.Open();
SqlCommand DateCheck = new SqlCommand(cmdText, SC);

// Add the parameter value to the command parameters collection
DateCheck.Parameters.Add("@name", SqlDbType.NVarChar).Value = theDate

// IF EXISTS returns the SELECT 1 if the table exists or SELECT 0 if not
int x = Convert.ToInt32(DateCheck.ExecuteScalar());
if (x == 1)
MessageBox.Show("Table exists for date " + theDate);
else
MessageBox.Show("Table doesn't exist for date " + theDate);
}
}

关于c# - SQL检查表是否存在于C#中,如果不存在则创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23066565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com