从数据库中读取并插入到DataGridView中

本文关键字:DataGridView 插入 读取 数据库 | 更新日期: 2023-09-27 18:18:12

如何从数据库读取记录并可以插入DataGridView。我不想绑定数据源。只是想读取和插入使用While循环。我知道如何从数据库Sql Server 2008 R2 Express Edition中读取,但无法在Datagridview中插入记录。

有谁能帮帮我吗?

string query = "Select id, IdNo, status From Members Where FamilyHeadIqama=@Head";
sqlCommand = new SqlCommand(query, sqlConnection);
sqlConnection.Open();
sqlCommand.Parameters.AddWithValue("@Head", familyMemberId);
sqlDataReader = sqlCommand.ExecuteReader();
if (sqlDataReader.HasRows)
    {
      //What to write here while my DataGridView Name is ufGView and it has 
      //4 column. Names are Id, IdNo{TextBox}, Status{CheckBox}, Action{HyperLink}
    }
}
catch (Exception exp)
{
          MessageBox.Show(exp.Message.ToString(), "Exception in CheckFamilyMembers");
}

我正在找这样的东西。

 int i = 0;
            while (sqlDataReader.Read())
            {
                ufGview.Rows[i].Cells["Column3"].Value = sqlDataReader["id"].ToString();
                ufGview.Rows[i].Cells["Column1"].Value = sqlDataReader["IdNo"].ToString();
                ufGview.Rows[i].Cells["Column2"].Value = sqlDataReader["status"].ToString();
                i++;
            }

从数据库中读取并插入到DataGridView中

是这样的

DataTable dt = new DataTable();
DataRow dr = new DataRow();
While sqlDataReader.Read(){
dr = dt.newRow();
dr["Id"] = sqlDataRead.item["id"];
.
.   
.
dt.rows.add(dr);
}
DataGridView.datasource = dt;

希望有所帮助

您可以像这样从SqlDataReader获得DataTable:

using (var sqlDataReader = sqlCommand.ExecuteReader())
{
    var dataTable = new DataTable();
    dataTable.Load(sqlDataReader);
    return dataTable;
}

那么你可以这样设置gridviews源:

dataGridView1.DataSource = dataTable;

这很简单,我希望,这就是你正在寻找的。

if (sqlDataReader.HasRows)
    {
           DataTable schemaTable = reader.GetSchemaTable();
           foreach (DataRow currentrow in schemaTable.Rows)
           {
               ufgView.rows.add(currentrow )  //  gridviewname as per your comment
           }
    }

希望这对你有帮助,如果你需要进一步的澄清或疑问,请告诉我。

谢谢恋人

谢谢大家,

谢谢你的回复。通过将AllowUserToAddRows属性更改为True并修改一些代码,我得到了结果,就像这样…

   for (int i = 1; i <= TOTALMEMBERS; i++)
   {
       string[] row = new string[] { i.ToString() };
       ufGview.Rows.Add(row);
   }
   int ji = 0;
   while (sqlDataReader.Read())
   {
        ufGview.Rows[ji].Cells["Column3"].Value = sqlDataReader["id"].ToString();
        ufGview.Rows[ji].Cells["Column1"].Value = sqlDataReader["IdNo"].ToString();
        ufGview.Rows[ji].Cells["Column2"].Value = sqlDataReader["status"].ToString();
      ji++;
    }