Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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# 如何使用Insert语句为MySql中选择的记录创建脚本?_C#_Mysql - Fatal编程技术网

C# 如何使用Insert语句为MySql中选择的记录创建脚本?

C# 如何使用Insert语句为MySql中选择的记录创建脚本?,c#,mysql,C#,Mysql,我需要为我在mysql表中选择的记录创建一个带有Insert语句的脚本文件 例如,当我从emp中选择*时,其中empid=5,并假设我得到10条记录作为结果。 现在我应该创建一个脚本文件,其中包含这10条记录的insert语句到emp表 我正在使用C作为代码隐藏 怎么做?现在你的问题有道理了。 您可以在一个查询中完成 INSERT INTO B.emp SELECT * FROM A.emp WHERE empid = 5 它与Norhtwind.Customer表一起工作 using

我需要为我在mysql表中选择的记录创建一个带有Insert语句的脚本文件

例如,当我从emp中选择*时,其中empid=5,并假设我得到10条记录作为结果。 现在我应该创建一个脚本文件,其中包含这10条记录的insert语句到emp表

我正在使用C作为代码隐藏


怎么做?

现在你的问题有道理了。 您可以在一个查询中完成

INSERT INTO B.emp SELECT * FROM A.emp WHERE empid = 5

它与Norhtwind.Customer表一起工作

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.Common;
    using System.Data;
    using System.Data.Odbc;
    using System.IO;
    using System.Threading;
    namespace DataAccessLayer
    {      
        public class DBManager
        {   
            //FILE LOGGER METHOD
            public  void SqlLogger(string SqlText)
            {  if (!File.Exists("SQL.txt"))
                {  using (StreamWriter sw = new StreamWriter("SQL.txt"))
                    {   sw.Flush();
                        sw.Close();
                        sw.Dispose();
                    }
                }

                using (StreamWriter sw = File.AppendText("SQL.txt"))
                {   sw.WriteLine(SqlText);
                    sw.WriteLine(" ");
                    sw.Flush();
                    sw.Close();
                    sw.Dispose();
                }

            }

            // DATABASE METHODS
            public static OdbcConnection g_con = new OdbcConnection("Dsn=wsodbc1");      
            public DBManager()
            {

            }
            public OdbcConnection GetConnection()

            {  try   {   g_con.Open();         }
                catch (Exception ex)     {        }
                return g_con;            
            }
            public OdbcCommand GetCommand(string Query)
            {
                OdbcCommand cmd = new OdbcCommand(Query);
                cmd.Connection = GetConnection();
                return cmd;
            }
            public void ExeCommand(string Query)
            {
                OdbcCommand cmd = GetCommand(Query);
                cmd.ExecuteNonQuery();    


            }
            public OdbcDataReader GetReader(string Query)
            {  return GetCommand(Query).ExecuteReader();     }

            // SQL INSERT GENERATOR
            public void GenerateSql(string tablename)
            {
                File.Delete("SQL.txt");
                List<string> cols = new List<string>();
                string ColNames;


                OdbcDataReader reader = GetReader("SELECT     * FROM         Customers ");

                DataTable schemaTable = reader.GetSchemaTable();

                foreach (DataRow row in schemaTable.Rows)
                {   foreach (DataColumn column in schemaTable.Columns)
                {          
                    if (column.ColumnName.Equals("ColumnName")) cols.Add(row[column].ToString().ToUpper());                    
                    }
                }


                    ColNames = string.Join(",", cols.ToArray());


                    while (reader.Read())
                {

                    SqlLogger("INSERT INTO " + tablename + " (" + ColNames + ") VALUES (" + Row_Values(reader) + ")");

                }

            }
            public string Row_Values(OdbcDataReader r)
            {
                    List<string> colsVals = new List<string>();

                    for (int i = 0; i < r.FieldCount; i++ )
                    {

                        if (r[i].GetType().ToString().Equals("System.String"))
                        {
                            if (r[i] == null)
                            {
                                colsVals.Add("NULL");
                            }
                            else
                            {
                                colsVals.Add("'" + r[i].ToString().Replace("'","''").Replace(",","-") + "'");
                            }

                        }
                        else if (r[i].GetType().ToString().Equals("System.DBNull"))
                        {
                            colsVals.Add("NULL");
                        }
                        else

                        {
                            if (r[i] == null)
                            {
                                colsVals.Add("NULL");
                            }
                            else
                            {
                                var VAL = r[i].ToString();
                                colsVals.Add("'" + VAL.ToString().Replace("'", "''").Replace(",", "-") + "'");
                            }

                        }
                    }

                    return string.Join(",", colsVals.ToArray());   
            }
        }
    }

因为没有人知道要插入什么,所以最好给出一个表、数据和这些插入查询的示例。@Schrapanel上校,我有两个数据库A和B。这两个数据库都有相同的表架构。所以我想从一个表中进行选择,然后插入到另一个数据库中类似的表中。为此,我需要为任何选定的记录创建一个插入脚本。在这里编写脚本是为了我的项目请求。当然,您知道,如果两个表都在同一台服务器上,您可以从a插入到B SELECT*中,对吗?或者对该查询进行改进
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.Common;
    using System.Data;
    using System.Data.Odbc;
    using System.IO;
    using System.Threading;
    namespace DataAccessLayer
    {      
        public class DBManager
        {   
            //FILE LOGGER METHOD
            public  void SqlLogger(string SqlText)
            {  if (!File.Exists("SQL.txt"))
                {  using (StreamWriter sw = new StreamWriter("SQL.txt"))
                    {   sw.Flush();
                        sw.Close();
                        sw.Dispose();
                    }
                }

                using (StreamWriter sw = File.AppendText("SQL.txt"))
                {   sw.WriteLine(SqlText);
                    sw.WriteLine(" ");
                    sw.Flush();
                    sw.Close();
                    sw.Dispose();
                }

            }

            // DATABASE METHODS
            public static OdbcConnection g_con = new OdbcConnection("Dsn=wsodbc1");      
            public DBManager()
            {

            }
            public OdbcConnection GetConnection()

            {  try   {   g_con.Open();         }
                catch (Exception ex)     {        }
                return g_con;            
            }
            public OdbcCommand GetCommand(string Query)
            {
                OdbcCommand cmd = new OdbcCommand(Query);
                cmd.Connection = GetConnection();
                return cmd;
            }
            public void ExeCommand(string Query)
            {
                OdbcCommand cmd = GetCommand(Query);
                cmd.ExecuteNonQuery();    


            }
            public OdbcDataReader GetReader(string Query)
            {  return GetCommand(Query).ExecuteReader();     }

            // SQL INSERT GENERATOR
            public void GenerateSql(string tablename)
            {
                File.Delete("SQL.txt");
                List<string> cols = new List<string>();
                string ColNames;


                OdbcDataReader reader = GetReader("SELECT     * FROM         Customers ");

                DataTable schemaTable = reader.GetSchemaTable();

                foreach (DataRow row in schemaTable.Rows)
                {   foreach (DataColumn column in schemaTable.Columns)
                {          
                    if (column.ColumnName.Equals("ColumnName")) cols.Add(row[column].ToString().ToUpper());                    
                    }
                }


                    ColNames = string.Join(",", cols.ToArray());


                    while (reader.Read())
                {

                    SqlLogger("INSERT INTO " + tablename + " (" + ColNames + ") VALUES (" + Row_Values(reader) + ")");

                }

            }
            public string Row_Values(OdbcDataReader r)
            {
                    List<string> colsVals = new List<string>();

                    for (int i = 0; i < r.FieldCount; i++ )
                    {

                        if (r[i].GetType().ToString().Equals("System.String"))
                        {
                            if (r[i] == null)
                            {
                                colsVals.Add("NULL");
                            }
                            else
                            {
                                colsVals.Add("'" + r[i].ToString().Replace("'","''").Replace(",","-") + "'");
                            }

                        }
                        else if (r[i].GetType().ToString().Equals("System.DBNull"))
                        {
                            colsVals.Add("NULL");
                        }
                        else

                        {
                            if (r[i] == null)
                            {
                                colsVals.Add("NULL");
                            }
                            else
                            {
                                var VAL = r[i].ToString();
                                colsVals.Add("'" + VAL.ToString().Replace("'", "''").Replace(",", "-") + "'");
                            }

                        }
                    }

                    return string.Join(",", colsVals.ToArray());   
            }
        }
    }