直接点中数据库中的一条信息后向另外一张表中插入信息 如上图所示,我想实现的功能是:当我点中上面的“药品详情”表中的某一药品时,再点击右边“增加用药”,便可将刚刚选中的信息插入到下面的“病人用药”表中,这该如何实现?“药品详情”表和“病人用药”表都在同一数据库中。最好有C#代码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DataGridView.CellContentClick 事件DataGridView.CellClick 事件 界面如下 不知道是不是lz要的效果 另外说明一点 不清楚lz的业务需求 所在显示病人用药那一块 lz根据自己的业务自行修善代码如下 表结构什么的我就不放了 lz根据自己的表来编写 这是死方法 建议是绑定泛型集合 一行的数据是一个对象 对象可以绑到行的tag上 这样有利于进一步的操作using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace My{ public partial class Form4 : Form { public Form4() { InitializeComponent(); } private void Form4_Load(object sender, EventArgs e) { this.dgvMedicine.AutoGenerateColumns = false; string sql = "SELECT * FROM Medicine"; using (SqlConnection con = DBHelper.Connection) { //窗体加载时 加载病人用药的药品信息 this.dgvMedicine.DataSource = DBHelper.GetDataTable(sql, null); } } private void btnAdd_Click(object sender, EventArgs e) { //判断是否有选中行 如果没有则提示 if (this.dgvMedicine.SelectedRows == null) { MessageBox.Show("请选择需要的药品"); } else { //获取前一个taPage上的卡号文本框 TextBox txtCard = tabPage1.Controls["txtCardNo"] as TextBox; //获取前一个tabPage上的姓名文本框 TextBox txtName = tabPage1.Controls["txtName"] as TextBox; //--------下面是对DataGridview的操作 //获取选中行的第一列的值(这里对应的是药品名称 下面的就不重复写了) //也就是你要插入到另一张的表的一些你需要的值 string mName = this.dgvMedicine.SelectedRows[0].Cells[1].Value.ToString(); //获取药品规格的值 //再说一点 我不知道你的用量是从哪里来的 所以没在表里面设计 string mStandard = this.dgvMedicine.SelectedRows[0].Cells[2].Value.ToString(); //构建参数化sql语句 string sql = "INSERT INTO PatitentInfo VALUES(@card , @name , @mname , @mstandard)"; //实例化参数列表 SqlParameter[] pars = { new SqlParameter("@card" , txtCard.Text), new SqlParameter("@name" , txtName.Text), new SqlParameter("@mname" , mName), new SqlParameter("@mstandard" , mStandard) }; //执行插入表的sql语句 if (DBHelper.ExecuteCommand(sql, pars) > 0) { //如果插入成功 则获取这张表中的对应病人的信息 string sqlStr = "SELECT * FROM PatitentInfo"; //清空数据绑定 防止数据重复加载 this.dgvPatient.DataSource = null; this.dgvPatient.AutoGenerateColumns = false; this.dgvPatient.DataSource = DBHelper.GetDataTable(sqlStr, null); } else { //提示插入失败 MessageBox.Show("新增信息出错!"); } } } }} C# SOCKET 文件传输的问题,请教高手啊!!!! js 里TOP问题 单击ComboBox时在下方显示下拉列表的位置显示Form,如何定位? winform程序的问题,望大家帮个忙,谢谢! 300分征集.NET板块里很有价值的45条问题及其回答 哪儿有“Crystal Reports 10 简体中文企业版” 下载? ★哪位大侠推荐一个winform版的Html编辑器控件 在线急求c#如何操作word代码? 求一个linq 如何实现五子棋的算法? 请教各位大侠个问题 c#怎么从数组随机取出一个,并且把他删除,避免重复
DataGridView.CellClick 事件
代码如下 表结构什么的我就不放了 lz根据自己的表来编写 这是死方法 建议是绑定泛型集合 一行的数据是一个对象 对象可以绑到行的tag上 这样有利于进一步的操作using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;namespace My
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
} private void Form4_Load(object sender, EventArgs e)
{
this.dgvMedicine.AutoGenerateColumns = false;
string sql = "SELECT * FROM Medicine";
using (SqlConnection con = DBHelper.Connection)
{
//窗体加载时 加载病人用药的药品信息
this.dgvMedicine.DataSource = DBHelper.GetDataTable(sql, null);
}
} private void btnAdd_Click(object sender, EventArgs e)
{
//判断是否有选中行 如果没有则提示
if (this.dgvMedicine.SelectedRows == null)
{
MessageBox.Show("请选择需要的药品");
}
else
{
//获取前一个taPage上的卡号文本框
TextBox txtCard = tabPage1.Controls["txtCardNo"] as TextBox;
//获取前一个tabPage上的姓名文本框
TextBox txtName = tabPage1.Controls["txtName"] as TextBox;
//--------下面是对DataGridview的操作
//获取选中行的第一列的值(这里对应的是药品名称 下面的就不重复写了)
//也就是你要插入到另一张的表的一些你需要的值
string mName = this.dgvMedicine.SelectedRows[0].Cells[1].Value.ToString();
//获取药品规格的值
//再说一点 我不知道你的用量是从哪里来的 所以没在表里面设计
string mStandard = this.dgvMedicine.SelectedRows[0].Cells[2].Value.ToString();
//构建参数化sql语句
string sql = "INSERT INTO PatitentInfo VALUES(@card , @name , @mname , @mstandard)"; //实例化参数列表
SqlParameter[] pars = {
new SqlParameter("@card" , txtCard.Text),
new SqlParameter("@name" , txtName.Text),
new SqlParameter("@mname" , mName),
new SqlParameter("@mstandard" , mStandard)
};
//执行插入表的sql语句
if (DBHelper.ExecuteCommand(sql, pars) > 0)
{
//如果插入成功 则获取这张表中的对应病人的信息
string sqlStr = "SELECT * FROM PatitentInfo";
//清空数据绑定 防止数据重复加载
this.dgvPatient.DataSource = null;
this.dgvPatient.AutoGenerateColumns = false;
this.dgvPatient.DataSource = DBHelper.GetDataTable(sqlStr, null);
}
else
{
//提示插入失败
MessageBox.Show("新增信息出错!");
}
} }
}
}