Записи с меткой «SQL»
Вставка данных в БД SQL из DataSet
string sqlConnectionString = "..."; // Строка подключения к БД SQL
string tableName = "..."; // Имя таблицы в DataSet
DataSet ds; // Заполненный данными DataSet
using (var con = new SqlConnection(sqlConnectionString))
{
con.Open();
using (var insertCmd = con.CreateCommand())
{
insertCmd.CommandText = "INSERT INTO Names (Number, Name) VALUES (@Number, @Name)";
insertCmd.Parameters.Add("Number", SqlDbType.NVarChar, 100, "Номер договора");
insertCmd.Parameters.Add("Name", SqlDbType.NVarChar, 100, "Клиент");
using (var adapter = new SqlDataAdapter())
{
adapter.InsertCommand = insertCmd;
adapter.Update(ds, tableName);
}
}
con.Close();
}
Возможна ситуация, когда и данные есть и ошибок нет, но данные из DataSet в БД не попадают. Такое может быть, например, когда DataSet заполнялся с помощью метода Fill другого DataAdapter или для DataSet был выполнен метод AcceptChanges. В этом случае данные в DataSet помечены как не измененные, и DataAdapter не считает нужным что-то с ними делать.
В случае с заполнением DataSet с помощью метода Fill? для решения проблемы, необходимо добавить перед вызовом метода Fill строку da.AcceptChangesDuringFill = false; (где da – экземпляр DataAdapter).
Подключение к удаленному SQL-серверу из SQL-запроса
-- Отключение от удаленного сервера EXEC sp_droplinkedsrvlogin 'MyRemoteServer', NULL GO -- Подключение удаленного сервера IF NOT EXISTS(SELECT name FROM sys.servers WHERE name = 'MyRemoteServer') EXEC sp_addlinkedserver 'MyRemoteServer', N'SQL Server' GO -- Авторизация на удаленном сервере EXEC sp_addlinkedsrvlogin @rmtsrvname = 'MyRemoteServer', @useself = 'false', @rmtuser = 'MyRemoteServerUserName', @rmtpassword = 'MyRemoteServerUserPassword' GO -- Выполнение запроса к удаленной базе SELECT * FROM MyRemoteServer.master.dbo.MyTable