高分求向各位高手帮助

hansyswin 2009-03-20 12:44:11
当单击DATAGRID 控件的某个位置时,能否使用这一行都变成其它的颜色,即此行被选中,然后再读出这一行的数据到 TEXTBOX 控件中! 是2003版本,winform 程序,当datagrid里有6条记录时,用户点其中的一条,需要将这条记录的相关数据读出来,比如放到textbox里。 谢谢。
...全文
83 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
POWER_WONG 2009-03-20
  • 打赏
  • 举报
回复
兄弟,举个简单的列子,我用C#,vs.net2003。
首先引用System.Data.SqlClient;


//用于显示相关数据表的数据
private DataSet GetUserData(string sql)
{
try
{
SqlConnection conn = new SqlConnection("你的数据库连接字符串");
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
catch{return null; }
}

在单击搜索数据按钮时写入代码:
private void btnSearch_Click(object sender, EventArgs e)
{
//假设你的数据库中有这个表USERS,只有两列,分别是用户名与密码
string sql = "SELECT * FROM USERS";
DataSet ds = GetUserData(sql);

//填充数据,假如你的DataGrid的名称是dgMain
if (ds!=null) dgMain.DataSource= ds.Tables[0];
}

在窗体上放置几个控件,这里只放置两个Label和两个TextBox,用来显示用户名与密码
在dgMain的CurrentCellChanged事件中写下以下代码。


private void dgMain_CurrentCellChanged(object sender,EventArgs e)
{
DataGrid dg = sender as DataGrid;
DataTable dt =(DataTable)dg.DataSource;
if (dt.Rows.Count<=0) return;//判断是否有数据

//得到当前行号,其中的0和1表示当前行的第一列和第二列
int i = dg.CurrentRowIndex;//当前行号
string user_name = dg[i,0].ToString();//第一列数据,用户名
string password = dg[i,1].ToString();//第二列数据,用户密码

//显示数据在控件
edtUserName.Text = user_name;
edtPassword.Text = password.
}

如果要显示多的其他数据,也是同样的道理。
hansyswin 2009-03-20
  • 打赏
  • 举报
回复
我用的是DATAGRID
xianguang321 2009-03-20
  • 打赏
  • 举报
回复
首先设置SelectionMode为FullRowSelect,这样你的DataGridView就可以选中哪一行就哪一行变色了.
其次可以在DataGridView中的CellMouseClick事件里做你需要赋值的项目
xiaojin0710 2009-03-20
  • 打赏
  • 举报
回复
帮顶了

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧