zoukankan      html  css  js  c++  java
  • c# 数据库数据与DataGridView表控件的绑定

    public Form1()
    {
       InitializeComponent();
    
       //连接数据库
       string str = "Data Source=IP;Initial Catalog=数据库名称;Persist Security Info=True;User ID=**; Password=";
       ConnectDatebase(str); 
    }
    
    void ConnectDatebase(string sql)
    {
       SqlConnection connection = new SqlConnection();
       connection.ConnectionString = sql;
       connection.Open();
    
       SqlDataAdapter adapter = new SqlDataAdapter("select *from steelname", connection);
       DataSet dsMain = new DataSet();
       adapter.Fill(dsMain, "steelname");
       this.dataGridView1.DataSource = dsMain;
       this.dataGridView1.DataMember = "steelname";
    }

    对于数据库的更新操作

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Data.Common;
    
    namespace DateManagerTools
    {
        public partial class Form1 : Form
        {
            private DataSet dsMain;
            private SqlDataAdapter adapter;
            public Form1()
            {
                InitializeComponent();
            }
    
            private SqlConnection getConnection()
            {
                SqlConnection connection = new SqlConnection();
                connection.ConnectionString = "Data Source=IP;Initial Catalog=数据库名称;Persist Security Info=True;User ID=**; Password=";
                return connection;
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                InitAdapter();
                getData();
                BindingControl();
            }
    
            /// <summary>
            /// 初始化adapter变量
            /// </summary>
            private void InitAdapter()
            {
                SqlConnection connection = this.getConnection();
                adapter = new SqlDataAdapter("select * from steelname", connection);
                adapter.FillLoadOption = LoadOption.OverwriteChanges;
                //新增
                SqlCommand InsertCommand = new SqlCommand();
                InsertCommand.Connection = connection;
                InsertCommand.CommandText = "insert into steelname,Name) values(@ID,@Code,@Name)";
                InsertCommand.Parameters.Add("@ID", SqlDbType.Int, 4, "ID");
                InsertCommand.Parameters.Add("@Code", SqlDbType.Char, 20, "Code");
                InsertCommand.Parameters.Add("@Name", SqlDbType.VarChar, 50, "Name");
                adapter.InsertCommand = InsertCommand;
                //修改
                SqlCommand UpdateCommand = new SqlCommand();
                UpdateCommand.Connection = connection;
                UpdateCommand.CommandText = "update steelname set Code=@Code,Name=@Name where ID=@ID";
                UpdateCommand.Parameters.Add("@ID", SqlDbType.Int, 4, "ID");
                UpdateCommand.Parameters.Add("@Code", SqlDbType.Char, 20, "Code");
                UpdateCommand.Parameters.Add("@Name", SqlDbType.VarChar, 50, "Name");
                adapter.UpdateCommand = UpdateCommand;
                //删除
                SqlCommand DeleteCommand = new SqlCommand();
                DeleteCommand.Connection = connection;
                DeleteCommand.CommandText = "delete steelname where steelname_id=@steelname_id";
                DeleteCommand.Parameters.Add("@steelname_id", SqlDbType.Int, 4, "steelname_id");
                adapter.DeleteCommand = DeleteCommand;
                //添加表映射
                //DataTableMapping TableMapping = new DataTableMapping();
                //TableMapping = adapter.TableMappings.Add("Users", "Users");
                //TableMapping.ColumnMappings.Add("Code", "Code");
                //TableMapping.ColumnMappings.Add("Name", "Name");
                //TableMapping.DataSetTable = "SteelName";
            }
    
            /// <summary>
            /// 把控件绑定到数据源
            /// </summary>
            private void BindingControl()
            {
                this.dataGridView1.DataSource = dsMain;
                this.dataGridView1.DataMember = "steelname";
                //this.dataGridView1.Columns[0].Width = 40;
                //this.txtID.DataBindings.Add("Text", dsMain, "Users.ID");
                //this.txtCode.DataBindings.Add("Text", dsMain, "Users.Code");
                //this.txtName.DataBindings.Add("Text", dsMain, "Users.Name");
            }
    
            /// <summary>
            /// 从Sql Server中获取数据
            /// </summary>
            private void getData()
            {
                if (dsMain == null)
                {
                    dsMain = new DataSet();
                }
                else
                {
                    dsMain.Clear();
                }
                adapter.Fill(dsMain, "steelname");
            }
    
            //新增
            private void button1_Click(object sender, EventArgs e)
            {
                this.BindingContext[dsMain, "steelname"].AddNew();
                this.BindingContext[dsMain, "steelname"].EndCurrentEdit();//结束编译
                //this.txtCode.Focus();
            }
    
            //删除
            private void button2_Click(object sender, EventArgs e)
            {
                if (this.BindingContext[dsMain, "steelname"].Position > -1)
                {
                    if (MessageBox.Show("是否要删除此记录?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        this.BindingContext[dsMain, "steelname"].RemoveAt(this.BindingContext[dsMain, "steelname"].Position);
                        Save();
                    }
                }
            }
    
            //保存
            private void button3_Click(object sender, EventArgs e)
            {
                this.BindingContext[dsMain, "steelname"].EndCurrentEdit();
                Save();
            }
    
            //刷新
            private void button4_Click(object sender, EventArgs e)
            {
                getData();
            }
    
            private void Save()
            {
                try
                {
                    adapter.Update(dsMain, "steelname");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
    }

     表中的某一列有ComBox绑定在一起:

    this.comboBox1.DataSource = dsMain.Tables[0];   //tables[0]第一列
    comboBox1.DisplayMember = "steeltype_id";
    comboBox1.ValueMember = "steeltype_id";
  • 相关阅读:
    控制C++的类只能在堆分配或只能在栈分配
    static 相关随笔
    虚拟继承
    虚函数和纯虚函数有以下所示方面的区别(转)
    构造函数 析构函数
    标准C++中有没有接口和纯抽象类的概念?(转)
    抽象类和接口(转)
    如何快速正确的安装 Ruby, Rails 运行环境
    NSRunLoop
    UIImagePickerController之死因 .
  • 原文地址:https://www.cnblogs.com/lihaibo-Leao/p/3147824.html
Copyright © 2011-2022 走看看