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

直接点中数据库中的一条信息后向此外一张表中插入信息

2012-12-15 
直接点中数据库中的一条信息后向另外一张表中插入信息如上图所示,我想实现的功能是:当我点中上面的“药品详

直接点中数据库中的一条信息后向另外一张表中插入信息


如上图所示,我想实现的功能是:
当我点中上面的“药品详情”表中的某一药品时,再点击右边“增加用药”,便可将刚刚选中的信息插入到下面的“病人用药”表中,这该如何实现?
“药品详情”表和“病人用药”表都在同一数据库中。

最好有C#代码。



[最优解释]

引用:
界面如下  不知道是不是lz要的效果 另外说明一点 不清楚lz的业务需求 所在显示病人用药那一块 lz根据自己的业务自行修善






代码如下 表结构什么的我就不放了 lz根据自己的表来编写 这是死方法 建议是绑定泛型集合 一行的数据是一个对象 对象可以绑到行的tag上 这样有利于进一步的操作
C# code?123456789101112131415……


Thanks very much!
[其他解释]
是这个?
[其他解释]
引用:
DataGridView.CellContentClick 事件
DataGridView.CellClick 事件


你指的是在这两个事件中实现,能否再详细点呢?最好可以粘贴上代码给我
[其他解释]
找到选中的那一行,将相关信息写入数据库相应表中。
[其他解释]
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("新增信息出错!");
                }
            }

        }
    }
}


[其他解释]
null

热点排行