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