Как добавить несколько таблиц таблиц на коде C #? - PullRequest
0 голосов
/ 26 июня 2019

Создаете приложение и не можете понять, как я могу создать несколько таблиц в базе данных SQL, нажав на форму? У меня 2 связи. 1 соединение для создания базы данных, 2 подключения для создания таблицы в базе данных

public partial class Form1 : Form
{
    static string constring = ConfigurationManager.ConnectionStrings["Test.Properties.Settings.Setting"].ConnectionString;
    SqlConnection connstringsql = new SqlConnection(constring);

    //for create table in database
    static string create =
ConfigurationManager.ConnectionStrings["Test.Properties.Settings.Setting1"].ConnectionString;
    SqlConnection connscreate = new SqlConnection(create);

    public Form1()
    {
        InitializeComponent();
    }


    private void button1_Click(object sender, EventArgs e)
    {

        //create table
        connscreate.Open();
        string sqlqueryone = "CREATE TABLE test";
        SqlCommand sqlcomm = new SqlCommand(sqlqueryone, connscreate);
        connscreate.Close();
    }

Когда я нажимаю на кнопку в базе, чтобы создать несколько таблиц.

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Создание таблиц в коде не является стандартным, и я понятия не имею, почему вы хотите это сделать.
Но ваш код нуждается в значительном улучшении, я бы начал с создания класса для всех ваших операций с базой данных.
Iнапишу небольшой пример, чтобы вы начали

public partial class MyDatabase
{
    private string _connectionString;

    public MyDatabase(string connectionString)
    {
         _connectionString = connectionString;
    }

    public void ExecuteSql(string sqlStatement)
    {
        using (SqlConnection conn = new SqlConnection(_connectionString))
        {
             conn.Open();
             using (SqlCommand command = new SqlCommand(sqlStatement))
             {
                  command.Connection = conn;
                  command.ExecuteNonQuery();
             }
        }
    }
}

, и теперь вы можете использовать его так часто, как вам нужно, например

private void button1_Click(object sender, EventArgs e)
{
    MyDatabase db = new MyDatabase("your connection string");

    db.ExecuteSql("create table test1 (id int, name varchar(10))");
    db.ExecuteSql("create table test2 (id int, name varchar(10))");
    ....
}

Это не полное решение, тамЕсть и другие вещи, которые вам нужно решить.
Например, перед созданием таблицы вам нужно проверить, не существует ли она еще
Этот пример предназначен для того, чтобы помочь вам сделать то, что вы делаете лучше, чем сейчас

0 голосов
/ 26 июня 2019
    private void createDatabase_Click(object sender, EventArgs e)
    {
        string constring = "Data Source =HALLR3C04;User ID=sa;Password=123456;";
        SqlConnection connstringsql = new SqlConnection(constring);

        //create table
        connstringsql.Open();
        string sqlqueryone = "CREATE DATABASE " + textBoxDatabaseName.Text;
        SqlCommand sqlcomm = new SqlCommand(sqlqueryone, connstringsql);
        sqlcomm.ExecuteNonQuery();
        connstringsql.Close();

        listBoxDatabases.Items.Add(textBoxDatabaseName.Text);
    }

    private void createTable_Click(object sender, EventArgs e)
    {
        string constring = $"Data Source =HALLR3C04;User ID=sa;Initial Catalog = {listBoxDatabases.SelectedItem.ToString()};Password=123456;";
        SqlConnection connstringsql = new SqlConnection(constring);

        //create table
        connstringsql.Open();
        string sqlqueryone = $@"create table {textBoxTableName.Text}
                                (
                                    Id int IDENTITY PRIMARY KEY,
                                    Name VARCHAR(50)
                                ) ";
        SqlCommand sqlcomm = new SqlCommand(sqlqueryone, connstringsql);
        sqlcomm.ExecuteNonQuery();
        connstringsql.Close();
    }

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...