Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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# 使用连接器/NET编程创建数据库?_C#_Mysql_Database - Fatal编程技术网

C# 使用连接器/NET编程创建数据库?

C# 使用连接器/NET编程创建数据库?,c#,mysql,database,C#,Mysql,Database,如何使用connector/net编程创建数据库?为什么下面的方法不起作用 string connStr = "server=localhost;user=root;port=3306;password=mysql;"; MySqlConnection conn = new MySqlConnection(connStr); MySqlCommand cmd; string s0; try { conn.Open();

如何使用connector/net编程创建数据库?为什么下面的方法不起作用

    string connStr = "server=localhost;user=root;port=3306;password=mysql;";
    MySqlConnection conn = new MySqlConnection(connStr);
    MySqlCommand cmd;
    string s0;

    try
    {
        conn.Open();
        s0 = "CREATE DATABASE IF NOT EXISTS `hello`;";
        cmd = new MySqlCommand(s0, conn);
        conn.Close();
    }
    catch (Exception e)
    {
        Console.WriteLine(e.ToString());
    }

您可能需要执行MySqlCommand。现在您只需创建一个,但它不会执行您的查询

试试这个:

conn.Open();
s0 = "CREATE DATABASE IF NOT EXISTS `hello`;";
cmd = new MySqlCommand(s0, conn);
cmd.ExecuteNonQuery();
conn.Close();

您需要执行该命令,并确保正确处置对象:

string connStr = "server=localhost;user=root;port=3306;password=mysql;";
using (var conn = new MySqlConnection(connStr))
using (var cmd = conn.CreateCommand())
{
    conn.Open();
    cmd.CommandText = "CREATE DATABASE IF NOT EXISTS `hello`;";
    cmd.ExecuteNonQuery();
}

执行命令并尝试此功能

public void createDatabase(string server, string port, string database, string username, string password)
    {
        string connectionstring = string.Format("Server = {0}; Port ={1}; Uid = {2}; Pwd = {3}; pooling = true; Allow Zero Datetime = False; Min Pool Size = 0; Max Pool Size = 200; ", server, port, username, password);
        using (var con = new MySqlConnection { ConnectionString = connectionstring })
        {
            using (var command = new MySqlCommand { Connection = con })
            {
                if (con.State == ConnectionState.Open)
                    con.Close();

                try
                {
                    con.Open();
                }
                catch (MySqlException ex)
                {
                    msgErr(ex.Message + " connection error.");
                    return;
                }

                try
                {
                    command.CommandText = @"CREATE DATABASE IF NOT EXISTS @database";
                    command.Parameters.AddWithValue("@database", database);
                    command.ExecuteNonQuery();//Execute your command
                }
                catch (MySqlException ex)
                {
                    msgErr(ex.Message + " sql query error.");
                    return;
                }
            }
        }

    }

这在VS2013中有效吗?还是必须先附加一些Dll?我在c#程序中尝试过,但没有成功。必须在数据库名称周围使用“而不是”。感谢您在VS 2013中完成这项工作,还是您必须先附加一些Dll?没有格式。这根本无助于解决问题。请删除或改进您的答案,谢谢。
Imports MySql.Data.MySqlClient
Public Class Form1
    Private dBf As String = "Empresa"
    Private str As String = "Server = localhost; uid=root; pwd=;Database=mysql; pooling=false;"
    Private Cmd As MySqlCommand
    Private Con As New MySqlConnection(str)
    Private Sub Form1_Load() Handles MyBase.Load
        Try
            Con.Open()
            Cmd = New MySqlCommand("Create Database If Not exists " + dBf, Con)
            Cmd.ExecuteNonQuery() : Con.ChangeDatabase(dBf)
            Cmd = Con.CreateCommand
            Cmd.CommandText = "CREATE TABLE Empleado" &
             "(Id Char(10)  COLLATE utf8_spanish_ci Not Null," &
             "name  VarChar(50)  COLLATE utf8_spanish_ci Not Null," &
             "email VarChar(50)   COLLATE utf8_spanish_ci Not Null," &
             "website VarChar(50)  COLLATE utf8_spanish_ci Not Null," &
             "Primary Key(id)) ENGINE=MyISAM"
            Cmd.ExecuteNonQuery()
            MsgBox("Registros, ok!!!") : Con.Close()
        Catch ex As Exception
            MsgBox(Err.Description)
        End Try
    End Sub
End Class