将SQL视图转换为MYSQL表

时间:2018-08-31 10:21:22

标签: c# mysql sql-server wpf view

我正在使用SQL Server2008。SQLServer中有数据库,其中包含表和视图。目前,我正在c#中开发一个程序,该程序可以从SQL Server中的表中选取视图,并在MYSQL中导出为表。到目前为止,我已经在C#中创建了一个表单,该表单使我可以选择一个正在运行的SQL Server,然后选择其可用数据库,然后针对所选数据库选择表和视图。 对于SQL部分,我已经完成了,但是我不知道如何将视图从SQL导出为表的MYSQL。如何在c#中提供MYSQL的连接字符串,以便创建从MYSQL选择的视图表?到目前为止,这是我的代码:

private void button1_Click(object sender, EventArgs e)
    {
        List<String> ServerNames = new List<String>();
        List<String> mysqlname = new List<String>();




        System.Data.Sql.SqlDataSourceEnumerator servers = System.Data.Sql.SqlDataSourceEnumerator.Instance;
        DataTable serversTable = servers.GetDataSources();

        foreach (DataRow row in serversTable.Rows)
        {
            string serverName = row[0].ToString();

            try
            {

                if (row[1].ToString() != "")
                {

                    serverName += "\\" + row[1].ToString();

                }


            }
            catch
            {


            }



            ServerNames.Add(serverName);
            serverscombo.Items.Add(serverName);


        }
    }

    private void serverscombo_SelectedIndexChanged(object sender, EventArgs e)
    {
        string fromcombo = serverscombo.SelectedItem.ToString();
        servertxt.Text = fromcombo;

    }

    private void servertxt_TextChanged(object sender, EventArgs e)
    {
        List<String> databases = new List<String>();

        System.Data.SqlClient.SqlConnectionStringBuilder connection = new System.Data.SqlClient.SqlConnectionStringBuilder();

        connection.DataSource = servertxt.Text;
        // enter credentials if you want
        //connection.UserID = //get username;
        // connection.Password = //get password;
        connection.IntegratedSecurity = true;

        String strConn = connection.ToString();
        connglob = strConn;
        //create connection
        SqlConnection sqlConn = new SqlConnection(strConn);

        //open connection
        sqlConn.Open();

        //get databases
        DataTable tblDatabases = sqlConn.GetSchema("Databases");

        //close connection
        sqlConn.Close();

        //add to list
        foreach (DataRow row in tblDatabases.Rows)
        {
            String strDatabaseName = row["database_name"].ToString();

            databases.Add(strDatabaseName);

            databasenamescombo.Items.Add(strDatabaseName);
        }
    }

    private void databasenamescombo_SelectedIndexChanged(object sender, EventArgs e)
    {
        string fromcombo2 = databasenamescombo.SelectedItem.ToString();

        //txtblob = fromcombo2;
        databasetxt.Text = fromcombo2;
        string val = databasetxt.Text;
        txtblob = val;


    }

    private void databasetxt_TextChanged(object sender, EventArgs e)
    {
        List<String> tble = new List<string>();

        using (SqlConnection con = new SqlConnection(connglob))
        {
            con.Open();
            System.Text.StringBuilder myQuery = new System.Text.StringBuilder();

            //myQuery.AppendFormat("SELECT TABLE_NAME FROM {0}.INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'", databasetxt.Text);
            using (SqlCommand com = new SqlCommand("SELECT TABLE_NAME FROM [" + databasetxt.Text + "].INFORMATION_SCHEMA.TABLES",con))

            {
                using (SqlDataReader reader = com.ExecuteReader())
                {
                    //comboBox1.Items.Clear();
                    while (reader.Read())
                    {
                        comboBox1.Items.Add((string)reader["TABLE_NAME"]);
                    }
                }
            }

            colortxt.BackColor = Color.LightGreen;
        }

0 个答案:

没有答案