Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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# 使用codebehind inC.中的值创建表脚本#_C#_Sql_Ado.net - Fatal编程技术网

C# 使用codebehind inC.中的值创建表脚本#

C# 使用codebehind inC.中的值创建表脚本#,c#,sql,ado.net,C#,Sql,Ado.net,我想用ado.net构建一个控制台应用程序,从数据库中获取一个表,并将其转换为文件中的字符串输出。我想用stringbuilder来实现这一点。但在获取数据并将其写入字符串生成器之前,我想用“xxx”填充表Person“name”和“last name”的两个字段。最终结果必须是tsql中带有create和insert values语句的文件 class Program { static void Main(string[] args) {

我想用ado.net构建一个控制台应用程序,从数据库中获取一个表,并将其转换为文件中的字符串输出。我想用stringbuilder来实现这一点。但在获取数据并将其写入字符串生成器之前,我想用“xxx”填充表Person“name”和“last name”的两个字段。最终结果必须是tsql中带有create和insert values语句的文件

class Program
    {
        static void Main(string[] args)
        {
            string ConString = @"Data Source=.;Initial Catalog=TEST;Integrated Security=True";

           

            SqlConnection con = new SqlConnection(ConString);
            string querystring = "Select * from person";

           

            con.Open();
            SqlCommand cmd = new SqlCommand(querystring, con);
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Console.WriteLine(reader[0].ToString() + " " + reader[1].ToString() + " " + reader[2].ToString() + reader[3].ToString());
            }

            StringBuilder builder = new StringBuilder();
            builder.Append("");
            //CREATE TABLE Person
            //[name] [varchar](20) NOT NULL,
            //[surname] [varchar](20) NOT NULL,        
            //[Gender] [varchar](5) NOT NULL


            //INSERT VALUES (...,...) with modifyed name and surname data and put it in the stringbuilder


            string innerString = builder.ToString();

            using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"\script.txt"))
            {
                file.WriteLine(innerString.ToString());
            }

         
               
            Console.Read();
        }

       
    }
有没有明智的方法来实现这一点?
谢谢

我相信这就是你想要的:

static void Main(string[] args)
    {
        string ConString = @"Data Source=.;Initial Catalog=Clients;Integrated Security=True";

        SqlConnection con = new SqlConnection(ConString);
        string querystring = "Select * from person";

        con.Open();
        SqlCommand cmd = new SqlCommand(querystring, con);
        SqlDataReader reader = cmd.ExecuteReader();
        StringBuilder builder = new StringBuilder();

        builder.AppendLine("CREATE TABLE PERSON");
        builder.AppendLine("(");
        builder.AppendLine("[name] [varchar](20) NOT NULL,");
        builder.AppendLine("[surname] [varchar](20) NOT NULL,");
        builder.AppendLine("[gender] [varchar](5) NOT NULL");
        builder.AppendLine(")");

        while (reader.Read())
        {
            var name = reader[0].ToString();
            var surname = reader[1].ToString();
            var gender = reader[2].ToString();
            var value4 = reader[3].ToString();

            Console.WriteLine(name + " " + surname + " " + gender + value4);

            builder.AppendLine("INSERT INTO PERSON (name, surname, gender) VALUES ('" + name + "','" + surname + "','" + gender + "')");
        }

        System.IO.File.WriteAllText(@"\script.txt", builder.ToString());

        Console.Read();
    }

谢谢我需要从sql中获取表名,以便它成为通用的。此解决方案提供硬编码字符串。并且性别列必须用sql中表中的数据填充。