Вставить все записи из datagridview к таблице SQL с#
Привет
Я использую графический интерфейс C#, и у меня есть один dataGridview и одна кнопка, Я хочу сохранить все строки и столбцы в таблицу sql из сетки, пожалуйста, помогите мне.....
Предполагая, что ваш DataGridView не привязан к БД (или он уже содержит строки в базе данных, которые вы не хотите вставлять снова), вам лучше всего использовать цикл:
using (SqlConnection con = new SqlConnection(connectionString)) { using (SqlCommand cmd = new SqlCommand("INSERT INTO MyTable(Column1, Column2) VALUES (@C1, @C2)", con)) { cmd.Parameters.Add(new SqlParameter("@C1", SqlDbType.VarChar)); cmd.Parameters.Add(new SqlParameter("@C2", SqlDbType.VarChar)); con.Open(); foreach (DataGridViewRow row in myDataGridView.Rows) { if (!row.IsNewRow) { cmd.Parameters["@C1"].Value = row.Cells[0].Value; cmd.Parameters["@C2"].Value = row.Cells[1].Value; cmd.ExecuteNonQuery(); } } } }
если (!подряд.IsNewRow) Это вернет старые данные, а не только что вставленные.
(! греби.IsNewRow) это вернет старые строки.
Ссылка на объект не установлена на экземпляр объекта.
Привет,
Создайте xml-файл для данных сетки и отправьте весь xml-файл в процедуру хранения.
Внутри SP вы можете разобрать его и вставить записи, используя один оператор insert.
В этом случае вы позвоните SP один раз. Вам не нужно звонить SP несколько раз.
Спасибо :)
Ваш код работает на 100% отлично, я модифицирую код для использования с хранимой процедурой, но это тот же самый вид!
void insertardgv2() { SqlConnection con = new SqlConnection("Server=mypc Database=AdventureWorks2012;Trusted_Connection=True;"); SqlCommand cmd = new SqlCommand("insertardatos", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@C1", SqlDbType.NVarChar)); cmd.Parameters.Add(new SqlParameter("@C2", SqlDbType.NVarChar)); con.Open(); foreach (DataGridViewRow row in dataGridView2.Rows) { if (!row.IsNewRow) { cmd.Parameters["@C1"].Value = row.Cells[0].Value; cmd.Parameters["@C2"].Value = row.Cells[1].Value; cmd.ExecuteNonQuery(); } } }
create procedure insertardatos ( @C1 nvarchar (40), @C2 nvarchar (40) ) as INSERT INTO Contacts(CompanyName, Phone) VALUES (@C1, @C2); go
are you storing the datagridview row values in a dataset? if so , you can pass this dataset to a stored procedure to insert into a database table
Объект sqlconnection кон = новое sqlconnection(@"сервер=админ-ПК\Нирадж;базы данных=мастер;Комплексная безопасность=истина;");
SqlDataAdapter da=new SqlDataAdapter ("select * from empdata", con);
DataSet ds=новый набор данных();
да.Заполнить(ДС);
grddata.Источник данных=ds;
grddata.Привязку();
это будет работать для вас