Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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# 从相同的名称方案和表插入表,但路径不同_C#_Sql Server - Fatal编程技术网

C# 从相同的名称方案和表插入表,但路径不同

C# 从相同的名称方案和表插入表,但路径不同,c#,sql-server,C#,Sql Server,我想合并两个名称相同的scheme和table,但路径不同。我原以为它能用,但没用 它返回错误 'System.Data.SqlClient.SqlException:'C:'附近的语法不正确。 “C:”附近的语法不正确。标签“C”已声明。 标签名称在查询批处理或存储过程中必须是唯一的。“” 当我替换 从“+y+”.dbo.项中选择id、名称“+””,以 “值(1,'a')”和“插入到”+x+”dbo.item”到“插入到dbo.item”它起作用了问题是您在INSERT语句中的任何地方都没有使

我想合并两个名称相同的scheme和table,但路径不同。我原以为它能用,但没用

它返回错误 'System.Data.SqlClient.SqlException:'C:'附近的语法不正确。 “C:”附近的语法不正确。标签“C”已声明。 标签名称在查询批处理或存储过程中必须是唯一的。“”

当我替换
“+y+”
.dbo.项中选择id、名称
“+”
”,以

值(1,'a')
”和“
插入到
”+x+”
dbo.item
”到“
插入到dbo.item
”它起作用了

问题是您在INSERT语句中的任何地方都没有使用连接2,您只使用到第一个数据库的连接

您可以在此处使用SQL批量复制类。你可以找到一个很好的教程
.

尝试使用此示例创建一个与一个文件的连接,然后将另一个连接附加到该文件:然后您可以在查询中通过db名称引用它们。@mjwills Iupdated@mjwills“插入C:\\dbdata\\b.mdf.dbo.Crwitem(商品市场、类别、商品id、商品nm、商品价格、商品url、制造商、写入日期)从C:\\dbdata\\a\\b.mdf.dbo.Crwitem中选择商品市场、类别、商品id、商品nm、商品价格、商品url、制造商、写入方式“
C:\\dbdata\\b.mdf.dbo.Crwitem
不是有效的表名。我怀疑您打算使用
dbo.Crwitem
@mjwills。我知道“\\”语法不会返回错误,所以我尝试用字符串替换方法和正则表达式等替换“\\”到“\”,但没有成功
private void Merge_Click(object sender, RoutedEventArgs e) {
        string x = // same name scheme but different path 1
                   // c:\dbdata\b.mdf
                   Files.Items[0].ToString(); //from listbox 1
        string y = // same name scheme but different path 2
                   // c:\dbdata\a\b.mdf
                   Files2.Items[Files2.SelectedIndex].ToString(); //from listbox 2

        string connect = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + x + ";Integrated Security=True;Connect Timeout=30";
        string connect2 = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + y + ";Integrated Security=True;Connect Timeout=30;Pooling=False;";

        string insert = "INSERT INTO " + x + ".dbo.item" + 
            " (id, name)" +
        // same table name 1
        " SELECT id, name" +
        "FROM " + y + ".dbo.item"; //same table name 2
        string q = @"select * from dbo.item ";

        using (SqlConnection connection = new SqlConnection(connect))
        {
            connection.Open();
            using (SqlConnection connection2 = new SqlConnection(connect2))
            {
                connection2.Open();

                SqlCommand commandinsert = new SqlCommand(insert, connection);
                var temp = commandinsert.ExecuteReader();                    

            }
        }