求助:datagridview取值查询,把查询结果显示到richtextbox上, 菜鸟不懂啊,求大神<<<<<<<<<只有100分,全给了

firecoming 2012-05-03 08:27:03



第一张图是我数据库Bas_illegal的内容,第二张第是表Bas_law的内容,三张图是我datagridview的截图

我想鼠标选中一行,就能在下面的richtextbox显示出第二张表所需的内容。

我的思路是:鼠标选中一行,就取出该行的代码,比如1001,然后1001去查本表的thekey字段的内容(thekey的内容没有在datagridview显示),根据第一张表的thekey去查第二张表的所需内容(thekey字段和第二张表的系统代码字段内容一样的,所以能查),然后把查出来的结果显示到下面的richtextbox里。



一个网友给我的思路:

private void GridViewBase1_RowCommand(object sender,GridViewCommandEventArgs e)
{
if (e.CommandName="这是你那行的名字")

string ID=e.CommandArgument.ToString();//这个是取出cmd参数的值,也就是你需要的那个值
lList<PROJECT_LIST>
pList=Pb.GeListByID(ID);
//这个是根据值传到你写的方法里取出数据
DridViewPM.DataSource=pList;//这个是绑定数据源给另一个控件
DridViewPM.DataBind();




我比较菜,需要大神能帮帮我,写一下大概的代码,(用thekey去查第二张表的内容,是不是要写个方法??),先谢谢了!!
...全文
287 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦世界 2012-05-04
  • 打赏
  • 举报
回复
选中行的值为 string id=datagriview.currentrow.celss["标题"]。value。tostring();
然后找出各个值,写入richtextbox 中便可
bcc222 2012-05-04
  • 打赏
  • 举报
回复
bs结构的啊?直接用sql进行查询就是了!在单击单元格的事件里面写查询语句!
你的选择B 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
第一张图是我数据库Bas_illegal的内容,第二张第是表Bas_law的内容,三张图是我datagridview的截图

我想鼠标选中一行,就能在下面的richtextbox显示出第二张表所需的内容。

我的思路是:鼠标选中一行,就取出该行的代码,比如1001,然后1001去查本表的thekey字段的内容(thekey的内容没有在datagridview显示),根据第一张表的theke……
[/Quote]
思路是对的啊,很简单的取值
同样是访问数据库
jacie0617 2012-05-04
  • 打赏
  • 举报
回复
可以写cellClick里,当然也可以写mouseclick等等,只是处理的方式有不同罢了。
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
string id = dataGridView1.Rows[e.RowIndex].Cells["ID绑定列名"].Value;//可以取当前行的任意列的值。比较方便。
//赋值代码,根据id去取表2的值然后再填值


}
firecoming 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
选中行的值为 string id=datagriview.currentrow.celss["标题"]。value。tostring();
然后找出各个值,写入richtextbox 中便可
[/Quote]
思路我是清晰的,因为我对C#不是很懂, 我想请教下这个代码是在mouseclick事件写吗? 能不能帮我写大概的代码... 谢谢了
firecoming 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
引用楼主 的回复:
第一张图是我数据库Bas_illegal的内容,第二张第是表Bas_law的内容,三张图是我datagridview的截图

我想鼠标选中一行,就能在下面的richtextbox显示出第二张表所需的内容。

我的思路是:鼠标选中一行,就取出该行的代码,比如1001,然后1001去查本表的thekey字段的内容(thekey的内容没有在datagridview显示),根……
[/Quote]
我不会C#,更不熟悉VS。 我想请教下这个代码在哪儿写呢? mouseclcik事件里吗?
firecoming 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
引用 1 楼 的回复:

图片显示反了,第一张图是Bas_law表,第二张图是Bas_illegal表 ,,求助


网友给你的那个是GridView的,不是C# 的DataGridView

string Id=DataGridView1.SelectedRows[0].Cells["ID"].Value.ToString();

通过Id到数据库联合查询去取出所需字段显示在r……
[/Quote]
联合查询我懂,我不会C#,更不熟悉VS。 我想请教下这个代码在哪儿写呢? mouseclcik事件里吗?

firecoming 2012-05-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
DBhelper


C# code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using Sys……
[/Quote]


能不能添点注释啊?~ 感觉不像是我的额
熙风 2012-05-03
  • 打赏
  • 举报
回复

DBhelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Windows.Forms;
using System.Configuration;


namespace EmployeeManage
{
public class DBHelper
{
//属性:数据库链接对象
private static OleDbConnection conn;
public static OleDbConnection Conn
{

get
{
try
{

string connstr ="Data Source=.;Initial Catalog=Data;User ID=sa;Password=123456";//ConfigurationManager.ConnectionStrings["DatabaseConnStr"].ConnectionString.ToString();

if (conn == null)
conn = new OleDbConnection(connstr);
if (conn.State == ConnectionState.Closed)
conn.Open();
if (conn.State == ConnectionState.Broken)
{
conn.Close();
conn.Open();
}
return conn;

}
catch (Exception ex)
{

throw;
}
}
}


//方法:查询,DataReader
public static OleDbDataReader GetReader(string SqlStr)
{
OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);
return cmd.ExecuteReader();
}

public static OleDbDataReader GetReader(string SqlStr, OleDbParameter[] paras)
{
OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);
cmd.Parameters.AddRange(paras);
return cmd.ExecuteReader();
}


//查询:DataTable
public static DataTable GetTable(string SqlStr)
{
try
{


OleDbDataAdapter dap = new OleDbDataAdapter(SqlStr, Conn);
DataSet ds = new DataSet();
dap.Fill(ds);
conn.Close();
return ds.Tables[0];
}
catch (Exception ex)
{

throw;
}
}

//增删改
public static bool Execute(string SqlStr)
{
OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);
int result = cmd.ExecuteNonQuery();
conn.Close();
return result > 0;
}


//返回首行首列
public static object GetScalar(string SqlStr)
{
OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);
object obj = cmd.ExecuteScalar();
conn.Close();
return obj;
}


/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static void ExecuteSqlTran(List<string> SQLStringList)
{
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = Conn;
OleDbTransaction tx = Conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n].ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.OleDb.OleDbException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
}


string sql=select a.系统代码,a.文件编号,a.条,a.款,a.顶,a.thetext from Bas_law a left out join
Bas_illegal b on a.系统代码=b.thekey where b.illegalid='"+Id+"'

DataTable dt=DBHelper.GetTable(sql);
熙风 2012-05-03
  • 打赏
  • 举报
回复
sql语句

select a.系统代码,a.文件编号,a.条,a.款,a.顶,a.thetext from Bas_law a left out join
Bas_illegal b on a.系统代码=b.thekey where b.illegalid=Id
熙风 2012-05-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

图片显示反了,第一张图是Bas_law表,第二张图是Bas_illegal表 ,,求助
[/Quote]

网友给你的那个是GridView的,不是C# 的DataGridView

string Id=DataGridView1.SelectedRows[0].Cells["ID"].Value.ToString();

通过Id到数据库联合查询去取出所需字段显示在richtextbox上面就可以了
firecoming 2012-05-03
  • 打赏
  • 举报
回复
图片显示反了,第一张图是Bas_law表,第二张图是Bas_illegal表 ,,求助

110,539

社区成员

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

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

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