Используйте процедуру одной базы данных и сохраняйте данные в другую таблицу базы данных, используя c # - PullRequest
0 голосов
/ 04 октября 2019

У меня много баз данных, и база данных динамически изменяется при вводе в строку подключения. Но у меня есть процедура в одной базе данных, предположим, с именем 'DB1', и я хочу вставить данные в другую базу данных с именем 'DB2'.

Я не могу создать другую строку подключения для вставки цели, потому что я не знаю обазы данных.

Мой код:

SqlConnection conn1 = new SqlConnection(ConfigurationManager.ConnectionStrings["connString"].ConnectionString);
conn1.Open();
SqlCommand cmd3 = new SqlCommand();
cmd3.Connection = conn1;
cmd3.CommandType = CommandType.StoredProcedure;
cmd3.CommandText = "storeProcedure";
cmd3.Parameters.AddWithValue("@Col0", string.IsNullOrEmpty(index[0].ToString()) ? (object)DBNull.Value : index[0].ToString());    
cmd3.Parameters.AddWithValue("@Col1", string.IsNullOrEmpty(index[1].ToString()) ? (object)DBNull.Value : index[1].ToString());
cmd3.Parameters.AddWithValue("@Col2", string.IsNullOrEmpty(index[2].ToString()) ? (object)DBNull.Value : index[2].ToString());
cmd3.Parameters.AddWithValue("@Col3", string.IsNullOrEmpty(index[3].ToString()) ? (object)DBNull.Value : index[3].ToString());
cmd3.ExecuteNonQuery();

Я использую две строки подключения: одну для использования процедуры и вторую для вставки данных в конкретную базу данных. Я хочу вставить данные во вторую строку подключения с именем connString1. Но я не знаю, как я могу это сделать.

Моя строка подключения:

<add name="connString" connectionString="Data Source=DBSERVER-PC\SQL2012;Database=DB1;User ID=sa;Password=a "providerName="System.Data.SqlClient" />

<add name="connString1" connectionString="Data Source=DBSERVER-PC\SQL2012;Database=DB2;User ID=sa;Password=a "providerName="System.Data.SqlClient" />

Есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 04 октября 2019

Предположим, у вас есть таблица в (Database) DB1 с именем FROM dbo.item

--------------------
item_id | base_price
--------------------
   1    |   10.5

   2    |   6.5

Вы хотите это table insert into another (Database) DB2 с именем [dbo].[Testitem]

CREATE PROCEDURE dbo.Sp_InsertData
(
@DBNAME VARCHAR(100) = NULL     
)
AS
BEGIN

DECLARE @str VARCHAR(MAX)       
SET @str='INSERT INTO ' + @DBNAME + '.dbo.Testitem(item_id, base_price) select item_id, base_price from dbo.item '
exec (@str)

END

Скрипт тестированияДля Execute SP

EXEC dbo.Sp_InsertData
@DBNAME='DB2'

Примечание: - У вас есть пароль Database(DB2) имя из кода сзади как @Paramter in DB1 с использованием web.config .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...