Как прочитать все строки в определенном столбце и изменить перед привязкой в ​​виде сетки asp.net - PullRequest
3 голосов
/ 13 марта 2019

У меня есть таблица SQL, где она содержит один столбец всех шестнадцатеричных значений.При извлечении данных из таблицы в виде сетки. Мне нужно изменить все ее значения в определенном столбце с последующим связыванием.

foreach (DataRow dr in ds.Tables[0].Rows)
        {
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                object o = dr["ColumnName"];
                if (o != DBNull.Value) // Check for null
                {

                    if (ds.Tables[0].Rows[i]["ColumnName"].ToString() != null)
                    {
                        ds.Tables[0].Rows[i]["ColumnName"] = value.ToString();
                    }
                    else
                    { }
                }
            }
        }
ds.Tables[0].AcceptChanges();
grid.DataSource = ds;
grid.DataBind();

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

Ответы [ 2 ]

2 голосов
/ 13 марта 2019

Поскольку ds.Tables[0] содержит DataTable объект, вы можете использовать метод расширения DataRow.Field<T>(), чтобы найти значения из указанного имени столбца, заменить значения на SetField(), а затемперепривязать изменения к источнику данных сетки:

foreach (DataRow dr in ds.Tables[0].Rows)
{
    string oldValue = dr.Field<string>("ColumnName");

    // check if the column has value
    if (!string.IsNullOrEmpty(oldValue))
    {
        dr.SetField("ColumnName", value.ToString());
    }
    else
    {
        // do something else
    }
}

ds.Tables[0].AcceptChanges();

// rebind the data source here

Обратите внимание, что DataRow.Field<T> приводит к приведению значения к типу, указанному параметром типа T, поэтому в следующем условии if вместо проверки используется null или пустая строкаDBNull.Value.

1 голос
/ 13 марта 2019

сначала bind ваш grid view и добавьте OnRowDataBound как

<asp:GridView ID="GridView1" runat="server" OnRowDataBound = "OnRowDataBound">
Событие

RowDataBound равно triggered for each GridView Row, когда строка GridView связана с данными. затем в вашем OnRowDataBound коде события

protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        column1 = e.Row.Cells[1].Text;
        //here you can give the column no that you want get like e.Row.Cells[1] 
        e.Row.Cells[1].Text="test";
       //you can set what you want like this
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...