从数据库读取并插入DataGridView

时间:2016-11-15 15:25:11

标签: c# datagridview sql-server-2008r2-express

我如何从数据库中读取记录并可以插入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++;
            }

4 个答案:

答案 0 :(得分:1)

是这样的。

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;

希望有所帮助

答案 1 :(得分:1)

您可以从DataTable获得SqlDataReader,如下所示:

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

您可以像这样设置gridviews源:

dataGridView1.DataSource = dataTable;

答案 2 :(得分:1)

它很容易,我希望,这就是你要找的东西。

if (sqlDataReader.HasRows)
    {
           DataTable schemaTable = reader.GetSchemaTable();
           foreach (DataRow currentrow in schemaTable.Rows)
           {

               ufgView.rows.add(currentrow )  //  gridviewname as per your comment
           }
    }

希望它确实有所帮助,如果您需要进一步澄清或怀疑,请告诉我。

感谢 KARTHIK

答案 3 :(得分:0)

谢谢大家,

感谢您的回复。我通过将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++;
    }