C#从select [FIXED]插入 [英] C# insert into from select [FIXED]

查看:94
本文介绍了C#从select [FIXED]插入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,



我正在为3个多个数据库中的查询寻找解决方案。



(1)首先我将截断数据库中的表 A A

(2)然后我将删除表 B 来自数据库 B

(3)下一步是插入数据库 B ,选择数据库 C

(4)然后更新数据库 A

(5)最后一步是插入数据库中的所有数据 A 进入数据库 C



SQL CODE

Hi there,

I'm looking for an solution for an query in 3 multiple databases.

(1) First I will truncate table A in database A
(2) Then I will delete table B from database B
(3) Next step is insert into database B with an select from database C
(4) Then update database A
(5) And the last step is to insert all the data from database A into database C

SQL CODE

TRUNCATE TABLE BB.dbo.Credentials -- (1)

DELETE FROM CA.dbo.Badge WHERE UserField1 = 'CABB' -- (2)

INSERT INTO BB.dbo.Credentials (3)
 (id,Badge,firstname,middlename,lastname,createddatetime)
SELECT u.ID, w.VALUE, u.FIRSTNAME, u.MIDDLENAME, u.LASTNAME, w.CREATEDDATETIME FROM MM.dbo.User_ u 
INNER JOIN MM.dbo.WiegandUserValue w
ON u.ID = w.OWNERID

UPDATE BB.dbo.Credentials (4)
SET enabled = 1, resident = 1, initload = 1, accgrp = 1, facility = 0, userfield1 = 'CABB', record = 1, val1 = 0, val3 = 0, val4 = 0, val5 = 0


INSERT INTO CA.dbo.Badge (5)(FrstName,Middlename,Lastname,Badge,Enabled,Resident,InitLoad,AGroup1,Facility,UserField1)
SELECT firstname,middlename,lastname,value,enabled,resident,initload,accgrp,facility,userfield1 FROM cabb.dbo.Credentials





c#CODE



c# CODE

public void SQLQuery1()
        {
            SqlConnection sc = new SqlConnection(GetConnectionStringBiobridge());
            sc.Open();
 
            string query = string.Format("TRUNCATE TABLE BioBridge.dbo.Credentials");
 
            sc.Close();
        }
 
        public void SQLQuery2()
        {
            SqlConnection sc = new SqlConnection(GetConnectionStringCardAccess());
            sc.Open();
 
            string query = string.Format("DELETE FROM ca211LiveDB05242017_1213013.dbo.Badge WHERE UserField1 = 'CABB'");
 
            sc.Close();
        }
 
        public void SQLQuery3()
        {
            SqlConnection sc = new SqlConnection(GetConnectionStringBiobridge());
            sc.Open();
 
            string query = string.Format("INSERT INTO BioBridge.dbo.Credentials (id,value,firstname,middlename,lastname,createddatetime) " +
                "SELECT u.ID, w.VALUE, u.FIRSTNAME, u.MIDDLENAME, u.LASTNAME, w.CREATEDDATETIME FROM MorphoManager.dbo.User_ u " +
                "INNER JOIN MorphoManager.dbo.WiegandUserValue w ON u.ID = w.OWNERID");
 
            sc.Close();
        }
 
        public void SQLQuery4()
        {
            SqlConnection sc = new SqlConnection(GetConnectionStringBiobridge());
            sc.Open();
 
            string query = string.Format("UPDATE Biobridge.dbo.Credentials SET enabled = 1, resident = 1, initload = 1, accgrp = 1, facility = 0, userfield1 = 'CABB', record = 1, val1 = 0, val3 = 0, val4 = 0, val5 = 0");
 
            sc.Close();
        }
 
        public void SQLQuery5()
        {
            SqlConnection sc = new SqlConnection(GetConnectionStringCardAccess());
            sc.Open();
 
            string query = string.Format("INSERT INTO ca211LiveDB05242017_1213013.dbo.Badge (FrstName,Middlename,Lastname,Badge,Enabled,Resident,InitLoad,AGroup1,Facility,UserField1) " +
                "SELECT firstname, middlename, lastname, value, enabled, resident, initload, accgrp, facility, userfield1 FROM BioBridge.dbo.Credentials");
 
            sc.Close();
        }
 
        private void btnInsert_Click(object sender, EventArgs e)
        {
            SQLQuery1();
            SQLQuery2();
            SQLQuery3();
            SQLQuery4();
            SQLQuery5();
        }





我的尝试:



当我在SQL Management Studio中执行上述操作时,它可以工作,但是当我在C#中通过button_click执行此操作时,它不起作用。当我创建一个messagebox.show并按下按钮时,消息框就会出现。



有人知道我做错了吗?



提前致谢!



What I have tried:

When I do above by the hand in SQL Management Studio it works, but when I do this in C# by an button_click it doesn't work. When I create an messagebox.show and I press on the button the messagebox will come up.

Does someone knows what I do wrong?

Thanks in advance!

推荐答案

您好,



您的连接运行sql命令是不完整的。



这里!如何连接和执行sql命令。

Hi,

Your connection to run an sql command is incomplete.

Here! How do you connect and execute an sql command.
public void SQLQuery1()
{
    SqlConnection sc = new SqlConnection(GetConnectionStringBiobridge());
    sc.Open();

    string query = string.Format("TRUNCATE TABLE BioBridge.dbo.Credentials");
            
    SqlCommand SQLcm = new SqlCommand();
    SQLcm.Connection = sc;
    SQLcm.CommandText = query;
    SQLcm.CommandType = CommandType.Text;
    SQLcm.ExecuteNonQuery();
    sc.Close();
}





如果你想了解更多。

Classe SqlConnection(System.Data.SqlClient)



System.Data.SqlClient命名空间


这篇关于C#从select [FIXED]插入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆