首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#窗体 数据库操作失败,请教怎么修改?多谢

2012-06-21 
c#窗体 数据库操作失败,请问如何修改?谢谢!private void button1_Click(object sender, EventArgs e){stri

c#窗体 数据库操作失败,请问如何修改?谢谢!
private void button1_Click(object sender, EventArgs e)
  {
  string conStr = "Data Source=.;Initial Catalog=db;User ID=sa;Password=sa";
  SqlConnection Conn = new SqlConnection(conStr);
  Conn.Open();
  SqlCommand cmd = new SqlCommand("select id, chengshi from chengshi where hide is null", Conn);
  SqlDataReader Reader = cmd.ExecuteReader();

  string quyu;
  while (Reader.Read())
  {
  quyu = "select id, quyu from quyu where chengshi_id=" + Reader.GetInt32(0).ToString() + " and hide is null";
  SqlCommand cmd2 = new SqlCommand(quyu, Conn);
  SqlDataReader red2 = cmd2.ExecuteReader(); // 提示这段有问题
  while (red2.Read())
  {

  textBox1.Text = red2.GetInt32(0).ToString();
  Application.DoEvents();
  }
  }

  Conn.Close();  
  }

[解决办法]
拆开分两步执行试下

C# code
private void button1_Click(object sender, EventArgs e){    string conStr = "Data Source=.;Initial Catalog=db;User ID=sa;Password=sa";    SqlConnection Conn = new SqlConnection(conStr);    Conn.Open();    var list = new List<int>();    SqlCommand cmd = new SqlCommand("select id, chengshi from chengshi where hide is null", Conn);    SqlDataReader Reader = cmd.ExecuteReader();    while (Reader.Read())    {        list.Add(Reader.GetInt32(0));    }    Reader.Dispose();    cmd.Dispose();    foreach (var item in list)    {        var sql = "select id, quyu from quyu where chengshi_id=" + item.ToString() + " and hide is null";        SqlCommand cmd2 = new SqlCommand(sql, Conn);        SqlDataReader red2 = cmd2.ExecuteReader(); // 提示这段有问题        while (red2.Read())        {            textBox1.Text = red2.GetInt32(0).ToString();            Application.DoEvents();        }        red2.Dispose();        cmd2.Dispose();    }    Conn.Close();}
[解决办法]
定义个类,代码也稍作修改
C# code
private void button1_Click(object sender, EventArgs e){    string conStr = "Data Source=.;Initial Catalog=db;User ID=sa;Password=sa";    SqlConnection Conn = new SqlConnection(conStr);    Conn.Open();    var list = new List<Tuple>();    SqlCommand cmd = new SqlCommand("select id, chengshi from chengshi where hide is null", Conn);    SqlDataReader Reader = cmd.ExecuteReader();    while (Reader.Read())    {        var tuple = new Tuple { id = Reader.GetInt32(0), quyu = Reader.GetString(1) };        list.Add(tuple);    }    Reader.Dispose();    cmd.Dispose();    foreach (var item in list)    {        var sql = "select id, quyu from quyu where chengshi_id=" + item.id.ToString() + " and hide is null";        SqlCommand cmd2 = new SqlCommand(sql, Conn);        SqlDataReader red2 = cmd2.ExecuteReader(); // 提示这段有问题        while (red2.Read())        {            textBox1.Text = red2.GetInt32(0).ToString();            Application.DoEvents();        }        red2.Dispose();        cmd2.Dispose();    }    Conn.Close();}private class Tuple{    public int id;    public string quyu;} 

热点排行