Datagridview foreach

时间:2013-12-16 01:13:06

标签: c# datagridview

我为我的代码编写了这个代码我试图做的是对于在数据库中创建的每个帐户,它将它添加到datagridviewi尝试此代码,但所有的漫画都是空的?

public DataTable GetResultsTable(string Username)
{
    using (SqlDatabaseClient client = SqlDatabaseManager.GetClient())
    {
        DataRow row = client.ExecuteQueryRow("SELECT * FROM users WHERE username = '" + Username + "'");
        DataTable table = new DataTable();
        table.Columns.Add("Username".ToString());
        table.Columns.Add("Motto".ToString());
        table.Columns.Add("Email".ToString());
        table.Columns.Add("Homeroom".ToString());
        table.Columns.Add("Health".ToString());
        table.Columns.Add("Energy".ToString());
        table.Columns.Add("Age".ToString());
        DataRow dr = table.NewRow();
        dr["Username"] = "" + row["username"] + "";
        dr["Motto"] = "" + row["motto"] + "";
        dr["Email"] = "" + row["mail"] + "";
        dr["Homeroom"] = "" + row["home_room"] + "";
        dr["Health"] = "" + row["health"] + "";
        dr["Energy"] = "" + row["energy"] + "";
        dr["Age"] = "" + row["age"] + "";
        table.Rows.Add(dr);
        return table;
    }
}
public frmMain()
{
  this.InitializeComponent();
  this.SetupBackstageContent();
  ribbonControl1.SelectedRibbonTabItem = ribbonTabItem1;
  ribbonTabItem2.Text = "&USER CONTROL";
  ribbonTabItem4.Text = "&ADD ONS";

  SqlDatabaseManager.Initialize();
  using (SqlDatabaseClient client  = SqlDatabaseManager.GetClient())
  foreach (DataRow row2 in client.ExecuteQueryTable("SELECT * FROM users").Rows)
  {
      dataGridView1.DataSource = GetResultsTable((string)row2["username"]);
  }
}

3 个答案:

答案 0 :(得分:0)

你的方法是错的,如果你想用所有用户记录填充dataGrid只考虑这段代码:

using (SqlConnection conn = new SqlConnection("your connection string"))
        {
            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM users", conn);
            DataSet ds = new DataSet();
            da.Fill(ds);
            dataGridView1.DataSource = ds;
        }

答案 1 :(得分:0)

Conn();
int i = 0;
cmd = new SqlCommand("select * from tbl_Emp", con);
da = new SqlDataAdapter(cmd);
dt = new DataTable();
da.Fill(dt);
if (dt != null && dt.Rows.Count > 0)
{
if (Dgv_Emp.Rows.Count > 0)
{ Dgv_Emp.Rows.Clear(); }
Dgv_Emp.Rows.Add(dt.Rows.Count);
foreach (DataRow rw in dt.Rows)
{
Dgv_Emp.Rows[i].Cells[0].Value = rw["Emp_id"].ToString();
Dgv_Emp.Rows[i].Cells[1].Value = rw["Emp_name"].ToString();
Dgv_Emp.Rows[i].Cells[2].Value = rw["Emp_desg"].ToString();
Dgv_Emp.Rows[i].Cells[3].Value = rw["Emp_dept"].ToString();
Dgv_Emp.Rows[i].Cells[4].Value = rw["Emp_gender"].ToString();
Dgv_Emp.Rows[i].Cells[5].Value = rw["Emp_contact"].ToString();
i = i + 1;
}
}

答案 2 :(得分:0)

请使用以下代码:

    public DataTable GetResultsTable()
    {
        using (SqlDatabaseClient client = SqlDatabaseManager.GetClient())
        {
            DataTable _userTable = client.ExecuteQueryTable("SELECT * FROM users");
            DataTable table = new DataTable();
            table.Columns.Add("Username".ToString());
            table.Columns.Add("Motto".ToString());
            table.Columns.Add("Email".ToString());
            table.Columns.Add("Homeroom".ToString());
            table.Columns.Add("Health".ToString());
            table.Columns.Add("Energy".ToString());
            table.Columns.Add("Age".ToString());
            foreach (DataRow _row in _userTable.Rows)
            {
                DataRow dr = table.NewRow();
                dr["Username"] = "" + _row["username"] + "";
                dr["Motto"] = "" + _row["motto"] + "";
                dr["Email"] = "" + _row["mail"] + "";
                dr["Homeroom"] = "" + _row["home_room"] + "";
                dr["Health"] = "" + _row["health"] + "";
                dr["Energy"] = "" + _row["energy"] + "";
                dr["Age"] = "" + _row["age"] + "";
                table.Rows.Add(dr);
            }

            return table;
        }
    }
    public frmMain()
    {
        this.InitializeComponent();
        this.SetupBackstageContent();
        ribbonControl1.SelectedRibbonTabItem = ribbonTabItem1;
        ribbonTabItem2.Text = "&USER CONTROL";
        ribbonTabItem4.Text = "&ADD ONS";

        SqlDatabaseManager.Initialize();

        dataGridView1.DataSource = GetResultsTable();
    }

由于您将DataRow作为DataGridView视图的DataSource传递,因此最后一行只能在datagridview中。在这里,我更改了您的代码并使用DataGridView的DataSource绑定DataTable而不是DataRow。