在c#的windows窗体中显示数据表,从数据库中读取一个数据表显示在

从数据库中读取一个数据表显示在windows窗体中,应该怎样做?实现之后单击其中一行,将该行某些数据显示在textbox中。谢谢!
最好将代码给出,再次谢谢!

void Button1Click(object sender, EventArgs e)
{
MySqlConnection conn = new MySqlConnection();//数据库连接
MySqlCommand cmd = new MySqlCommand();//命令执行器
try
{
conn = new MySqlConnection("Server=localhost;User Id=root;Password=1234;Persist Security Info=True;Database=mysql");
//连接串格式:
//Server是服务器名,可以是IP地址
//User Id是用户名
//Password是密码
//Database是要操作的数据库名
conn.Open();//打开数据库
cmd = conn.CreateCommand();//创建连接器的命令执行器
cmd.CommandText = "show tables;";//将要执行的SQl语句传给命令执行器
MySqlDataReader reader = cmd.ExecuteReader();//执行数据查询,返回读取器
if(reader.HasRows)//返回结果集不为空
{
while(reader.Read())//移动读取指针到下一条记录(初始时指针在第一条记录之前)
{
string rset = reader.GetString(0);//以字串形式返回第一个字段值
if(!string.IsNullOrEmpty(rset))//数据不为空时
listBox1.Items.Add(rset);//加载到LISTBOX中
}
}
}
catch(Exception err)
{//异常捕获并输出
MessageBox.Show(err.Message + "\r\n" + err.StackTrace);
}
finally
{
cmd.Dispose();//释放命令执行器
conn.Close();//断开数据库连接
conn.Dispose();//释放连接器
}
}

void ListBox1Click(object sender, EventArgs e)
{
int idx = listBox1.SelectedIndex;//得到LISTBOX中单击的行号
string sret = listBox1.Items[idx].ToString();//得到被单击行的文本
if(!string.IsNullOrEmpty(sret))
textBox1.Text = sret;//显示到TEXTBOX中
}

我用的IDE环境是SHARPDEVLOPER,数据库是MYSQL的

有不明白的在线M我,QQ是93803979,其它IDE环境或数据库我现在没有,明天可以给你写
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-28
写的太多会眼花,给你写几段主要的
1,连接数据库,要定义连接的字符串
2,有了连接的字符串,要定义执行语句

//该方法可以写在窗体加载事件中也可以定义一个butten,随楼主
//首先在窗体里拖一个dataGridView控件,该控件就是要显示数据库表的地方
//定义连接字符串,定义之前先引用System.Data.SqlClient命名空间
SqlConnection con = new SqlConnection("server=服务器名,本机就用一个点.;database=数据库名;uid=登录名;pwd=密码");//汉字部分自己写入
string sql = "select * from 表名";//定义一个查询语句,自已根据需要写
SqlDataAdapter adp = new SqlDataAdapter(sql,con);//实例化一个SqlDataAdapter类,参数就写刚刚定义的sql语句和连接对象con
DataSet set = new DataSet();//定义一个数据集
adp.Fill(set);//填充数据集
dataGridView1.DataSource=set.Tables["表名"];//将数据集里表显示在datagridview控件中.

//下面要说的就是怎么从datagridview控件中获取该单元格的值.把以下代码写在dataGridView控件的click事件中
int row = dataGridView1.CurrentCell.RowIndex;//获取选中单元格的行数
//如果你有一个textbox控件,就用来显示该单元格的值,这里的dataGridView1[0, row].这里的0就是该单元格所在的列数.索引是从0开始的
TextBox1.Text= dataGridView1[0, row].Value.ToString();//一定要ToString()转成字符串型。

//OK以上全部实现完毕,希望楼主满意 .补充一句SqlDataAdapter类是自动打开连接,调用完毕自动关闭连接。我的QQ79147602
第2个回答  2010-01-29
void Button1Click(object sender, EventArgs e)
{
MySqlConnection conn = new MySqlConnection();//数据库连接
MySqlCommand cmd = new MySqlCommand();//命令执行器
try
{
conn = new MySqlConnection("Server=localhost;User Id=root;Password=1234;Persist Security Info=True;Database=mysql");
//连接串格式:
//Server是服务器名,可以是IP地址
//User Id是用户名
//Password是密码
//Database是要操作的数据库名
conn.Open();//打开数据库
cmd = conn.CreateCommand();//创建连接器的命令执行器
cmd.CommandText = "show tables;";//将要执行的SQl语句传给命令执行器
MySqlDataReader reader = cmd.ExecuteReader();//执行数据查询,返回读取器
if(reader.HasRows)//返回结果集不为空
{
while(reader.Read())//移动读取指针到下一条记录(初始时指针在第一条记录之前)
{
string rset = reader.GetString(0);//以字串形式返回第一个字段值
if(!string.IsNullOrEmpty(rset))//数据不为空时
listBox1.Items.Add(rset);//加载到LISTBOX中
}
}
}
catch(Exception err)
{//异常捕获并输出
MessageBox.Show(err.Message + "\r\n" + err.StackTrace);
}
finally
{
cmd.Dispose();//释放命令执行器
conn.Close();//断开数据库连接
conn.Dispose();//释放连接器
}
}

void ListBox1Click(object sender, EventArgs e)
{
int idx = listBox1.SelectedIndex;//得到LISTBOX中单击的行号
string sret = listBox1.Items[idx].ToString();//得到被单击行的文本
if(!string.IsNullOrEmpty(sret))
textBox1.Text = sret;//显示到TEXTBOX中
}

我用的IDE环境是SHARPDEVLOPER,数据库是MYSQL的

有不明白的在线M我,其它IDE环境或数据库我现在没有,明天可以给你写

写的太多会眼花,给你写几段主要的
1,连接数据库,要定义连接的字符串
2,有了连接的字符串,要定义执行语句

//该方法可以写在窗体加载事件中也可以定义一个butten,随楼主
//首先在窗体里拖一个dataGridView控件,该控件就是要显示数据库表的地方
//定义连接字符串,定义之前先引用System.Data.SqlClient命名空间
SqlConnection con = new SqlConnection("server=服务器名,本机就用一个点.;database=数据库名;uid=登录名;pwd=密码");//汉字部分自己写入
string sql = "select * from 表名";//定义一个查询语句,自已根据需要写
SqlDataAdapter adp = new SqlDataAdapter(sql,con);//实例化一个SqlDataAdapter类,参数就写刚刚定义的sql语句和连接对象con
DataSet set = new DataSet();//定义一个数据集
adp.Fill(set);//填充数据集
dataGridView1.DataSource=set.Tables["表名"];//将数据集里表显示在datagridview控件中.

//下面要说的就是怎么从datagridview控件中获取该单元格的值.把以下代码写在dataGridView控件的click事件中
int row = dataGridView1.CurrentCell.RowIndex;//获取选中单元格的行数
//如果你有一个textbox控件,就用来显示该单元格的值,这里的dataGridView1[0, row].这里的0就是该单元格所在的列数.索引是从0开始的
TextBox1.Text= dataGridView1[0, row].Value.ToString();//一定要ToString()转成字符串型。

//OK以上全部实现完毕,希望楼主满意 .补充一句SqlDataAdapter类是自动打开连接,调用完毕自动关闭连接。

你使用ado还是linq?
linq的话先添加dbml文件,然后
lstTea = (from lv in dc.TeacherDriverClass
where lv.RiQi.CompareTo(dtpStart.Value) >= 0 && lv.RiQi.CompareTo(dtpEnd.Value) <= 0
select lv).ToList();
var lst = lstTea.Where(tc => (cboName.Text.Trim() == "" ? (1 == 1) : tc.TeacherName.Contains(cboName.Text)) &&
(cboClass.Text.Trim() == "" ? (1 == 1) : tc.ClassNo.Contains(cboClass.Text))).OrderBy(tt => tt.ClassNo).ThenBy
(tt => tt.RiQi).ToList();
dgvDetail.DataSource = lst;
var ls = lstTea.GroupBy(cl => cl.TeacherName, (name, clss) => new
{
教员姓名 = name,
课时数 = clss.Count() * 2
}).Where(cl => MyComm . Teachers.Contains(cl.教员姓名)).ToList();

dgv.DataSource = ls;
,如果要显示某些数据到textbox中直接获取datagridview的数据就可以了!
第3个回答  2010-01-28
使用数据显示控件-->连接数据库-->读取数据-->显示在数据显示控件中-->然后编写数据显示控件的行点击事件-->点击取出该条数据的ID-->再去数据库查询出该条数据-->将该条数据中的属性赋值在textBox中就可以了!

好多的大哥!
第4个回答  2010-01-29
你使用ado还是linq?
linq的话先添加dbml文件,然后
lstTea = (from lv in dc.TeacherDriverClass
where lv.RiQi.CompareTo(dtpStart.Value) >= 0 && lv.RiQi.CompareTo(dtpEnd.Value) <= 0
select lv).ToList();
var lst = lstTea.Where(tc => (cboName.Text.Trim() == "" ? (1 == 1) : tc.TeacherName.Contains(cboName.Text)) &&
(cboClass.Text.Trim() == "" ? (1 == 1) : tc.ClassNo.Contains(cboClass.Text))).OrderBy(tt => tt.ClassNo).ThenBy
(tt => tt.RiQi).ToList();
dgvDetail.DataSource = lst;
var ls = lstTea.GroupBy(cl => cl.TeacherName, (name, clss) => new
{
教员姓名 = name,
课时数 = clss.Count() * 2
}).Where(cl => MyComm . Teachers.Contains(cl.教员姓名)).ToList();

dgv.DataSource = ls;
,如果要显示某些数据到textbox中直接获取datagridview的数据就可以了!
相似回答