2013-06-01 7 views
0

У меня есть gridview, который заполняется выбранным элементом в моем выпадающем списке, у меня нет никаких проблем с этим. Моя проблема в том, что я пытаюсь сохранить несколько строк на моем GridView в мою базу данных, к примеру, я добавил 3 пунктов на моем GridView, который выглядит следующим образом:Сохранение нескольких строк gridview в базе данных

Id | Name 
111 | Jack 
222 | Nicole 
333 | John 

Теперь я хочу, чтобы все, что в колонке Id, который 111, 222 и 333 будут сохранены в моей базе данных, как только я нажму кнопку «Сохранить». Я пытаюсь использовать код ниже, но он дает мне сообщение об ошибке «System.data.sqlclient.sqlparameter не содержит определения для« Значений »и не использует метод расширения «Значение» принятие первого аргумента типа ...»:

SqlConnection con = new SqlConnection("Data Source=GATE-PC\\SQLEXPRESS;Initial Catalog=dbProfile;Integrated Security=True"); 
    SqlCommand cmdd = new SqlCommand("Insert into profile (Id, profile_id)VALUES(@id, @profile_id", con); 

    foreach (GridViewRow row in GridView1.Rows) 
    { 

     cmdd.Parameters.Add("@id", SqlDbType.Char, 20, "Id").Values = row.Cells["Id"].Value; 
    } 

    cmdd.CommandType = System.Data.CommandType.Text; 

    cmdd.Parameters.AddWithValue("@profile_id", txtID.Text); 
    con.Open(); 
    cmdd.ExecuteNonQuery(); 

Моя таблица должна быть выглядеть в этот раз я смог сохранить несколько строк из моего GridView в мои ДАТЫ abase:

auto_id | Id | profile_id 
1  |111 | 101 
2  |222 | 101 
3  |333 | 101 

Что мне не хватает? Я использую asp.net с C#.

ответ

0

Ошибка, которую вы получаете из-за этого, вы используете Values, но на самом деле это Value. Так что попробуйте это

foreach (GridViewRow row in GridView1.Rows) 
{ 
    cmdd.Parameters.Add("@id", SqlDbType.Char, 20, "Id").Value = row.Cells[0].Value; 
} 

Я также написал сообщение, связанное с этим требованием, аналогичным этому. Вы также можете посмотреть в этот

Save DataSet Changes to Database in C#

+0

Привет спасибо за ответ, я попробовал ваш код, но он дает мне ошибку в row.Cells [ «Id»]. В нем говорится: «Наилучшее перегруженное соответствие метода для« System.Web.UI.WebControls.TableCellCollection.this [int] »имеет некоторые недопустимые аргументы». Еще раз спасибо – user2388316

+0

@ user2388316 ok, поэтому вам нужно передать индекс столбца 'Id' вместо имени« id ». Я обновил свой ответ. Предполагаю, что 'Id' - это первый столбец, поэтому я использовал' Cells [0] '. – Sachin

Смежные вопросы