Зациклить столбец в datagridview, чтобы получить значение? - PullRequest
1 голос
/ 27 июня 2011

я делаю проект на веб-сервисе и в форме окна в основном я сталкиваюсь с некоторой проблемой и не знаю, как решить

  1. я хочу получить данные в каждой строке в ColA datagridview и внутри базы данных через веб-сервис, чтобы получить что-то вроде этого row1; row2; row3; row4 ...... так я и сделал a для цикла, но подчеркивание с номиналом, который я выделил жирным шрифтом

    private void push_Click(object sender, EventArgs e)
    
    {
    
        string nominal;
    
        for (int i = 0; i < DGV.Rows.Count; i++)
        {
            nominal = Convert.ToString(DGV.Rows[i].Cells[1].Value);
    
        }
        WSBrand insertInto = new WSBrand();
        insertInto.Insert(**nominal**)
    }
    

это мой метод вставки

[WebMethod]

public DataSet Insert(String BrandName)
{

    SqlCommand dbCommand = new SqlCommand();
    dbCommand.CommandText = "INSERT INTO Brand (BrandName)VALUES (@BrandName)";
    dbCommand.Connection = conn;
    da = new SqlDataAdapter();
    da.SelectCommand = dbCommand;
    dbCommand.Parameters.AddWithValue("@BrandName", BrandName);


    DataSet ds = new DataSet();
    da.Fill(ds);
    return ds;
}

Ответы [ 2 ]

0 голосов
/ 27 июня 2011

Просто используйте цикл foreach:

foreach(DataGridviewRow a in DGV.Rows)
{
 string  nominal = Convert.ToString(a.Cells[1].Value)

    WSBrand insertInto = new WSBrand();
    insertInto.Insert(nominal)

}
0 голосов
/ 27 июня 2011
private void push_Click(object sender, EventArgs e)
{    
    StringBuilder nominal = new StringBuilder();
    for(int i = 0;i<DGV.Rows.Count;i++){
        nominal.Append(Convert.ToString(DGV.Rows[i].Cells[1].Value) + ";");
    }
    WSBrand insertInto = new WSBrand();
    InsertInto.Insert(nominalList); 
}

В вашем классе WSBrand:

    [WebMethod]
public DataSet Insert(string nominal)
{        
    SqlCommand dbCommand = new SqlCommand();
    dbCommand.CommandText = "INSERT INTO Brand (BrandName)VALUES (@BrandName)";
    dbCommand.Connection = conn;
    dbCommand.Parameters.AddWithValue("@BrandName", sb.ToString());
    dbCommand.ExecuteNonQuery();

    SqlCommand dbCommand2 = new SqlCommand();
    dbCommand2.CommandText = "SELECT * FROM Brand";
    dbCommand2.Connection = conn;
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = dbCommand2;
    dbCommand2.ExecuteNonQuery();

    DataSet ds = new DataSet();
    da.Fill(ds);
    return ds;
}

Проблема в том, что номинал перезаписывается на каждой итерации цикла for.Если вы создадите список строк, которые содержат все значения DGV, вам будет проще получить доступ к ним в вашем классе WSBrand.

РЕДАКТИРОВАТЬ: при выполнении оператора INSERT единственное, что будетВозвращается количество затронутых строк.Чтобы вернуть все данные, вы должны выполнить запрос SELECT * FROM Brands, и это позволит вам заполнить ваш набор данных данными!

Окончательное редактирование: это должно работать с надеждой.Я изменил как метод push_Click, так и метод Insert.Если есть какие-либо синтаксические ошибки, вам придется их устранить, как я делал это в блокноте.Удачи

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