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, , "ID");
InsertCommand.Parameters.Add("@Code", SqlDbType.Char, , "Code");
InsertCommand.Parameters.Add("@Name", SqlDbType.VarChar, , "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, , "ID");
UpdateCommand.Parameters.Add("@Code", SqlDbType.Char, , "Code");
UpdateCommand.Parameters.Add("@Name", SqlDbType.VarChar, , "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, , "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 > -)
{
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[];   //tables[0]第一列
comboBox1.DisplayMember = "steeltype_id";
comboBox1.ValueMember = "steeltype_id";

c# 数据库数据与DataGridView表控件的绑定的更多相关文章

  1. 将数据库数据添加到ListView控件中

    实现效果: 知识运用: ListView控件中的Items集合的Clear方法 //从listView控件的数据项集合中移除所有数据项 补充:可以使用Remove或RemoveAt方法从集合中移除单个 ...

  2. 在Bootstrap开发框架中使用dataTable直接录入表格行数据(2)--- 控件数据源绑定

    在前面随笔<在Bootstrap开发框架中使用dataTable直接录入表格行数据>中介绍了在Web页面中使用Jquery DataTable插件进行对数据直接录入操作,这种处理能够给用户 ...

  3. WinForm控件复杂数据绑定常用数据源(对Combobox,DataGridView等控件DataSource赋值的多种方法)

    开始以前,先认识一下WinForm控件数据绑定的两种形式,简单数据绑定和复杂数据绑定. 1) 简单数据绑定 简单的数据绑定是将用户控件的某一个属性绑定至某一个类型实例上的某一属性.采用如下形式进行绑定 ...

  4. TreeView树形控件递归绑定数据库里的数据

    TreeView树形控件递归绑定数据库里的数据. 第一种:性能不好 第一步:数据库中查出来的表,字段名分别为UNAME(显示名称),DID(关联数据),UTYPE(类型) 第二步:前台代码 <% ...

  5. ASP.NET中后台数据和前台控件的绑定

    关于ASP.NET中后台数据库和前台的数据控件的绑定问题 最近一直在学习个知识点,自己创建了SQL Server数据库表,想在ASP.NET中连接数据库,并把数据库中的数据显示在前台,注意,这里的数据 ...

  6. ABAP表控件查询

    1.准备工作 首先SE11自建一个数据库表(数据元素,域信息请提前建好) 2.编写代码 2.1 新建一个子屏幕 子屏幕中需新定义一个文本输入框,命名为:key_word,新建一个表控件,命名为tab, ...

  7. C#端加载数据库,Combobox与Node控件绑定数据源demo示例

    最近一直在做网页.用的js比较多,最近需要做一个C#相关的demo,一开始还有点不适应,写了几句有点感觉了 本篇博客的主要内容是C#怎么读取数据库文件里的数据以及相关控件如何绑定数据源,所做的Demo ...

  8. Atitit..组件化事件化的编程模型--(2)---------Web datagridview 服务器端控件的实现原理and总结

    Atitit..组件化事件化的编程模型--(2)---------Web datagridview 服务器端控件的实现原理and总结 1. 服务端table控件的几个流程周期 1 1.1. 确认要显示 ...

  9. Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9

    Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9 1. 主要的涉及的技术 1 2. 主要的流程 1 3. 调用法new confirmO9t(); 1 4. ...

随机推荐

  1. Applet Mode

    https://github.com/threerings/getdown/wiki/Applet-Mode ————————————————————————————————————————————— ...

  2. orcale创建用户、授权

    Oracle创建用户.角色.授权.建表 一.首先使用SYSTEM进行登录 oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用 ...

  3. 【转】Jmeter分布式压力测试

    安装 下载地址:http://jmeter.apache.org/download_jmeter.cgi 安装前提(因为jmeter依赖于Java所以必须先配置好java) 下载后解压: tar -x ...

  4. 【转】【C++】__stdcall、__cdcel和__fastcall三者的区别

    __stdcall.__cdecl和__fastcall是三种函数调用协议,函数调用协议会影响函数参数的入栈方式.栈内数据的清除方式.编译器函数名的修饰规则等.如下图所示,可以在IDE环境中设定所有函 ...

  5. Windows下 flex + bison 小例子

    .下载flex和bison,网址是http://gnuwin32.sourceforge.net/packages/flex.htm 和http://gnuwin32.sourceforge.net/ ...

  6. Google Analytics10条有用教程(转)

    几乎每个网站都会统计自身的浏览状况:日IP.PV.跳出率.转换率.浏览者属性等等.了解这些数据有助于更好地了解浏览者的属性.知道网站在什么地方存在缺陷,为更好地提供服务.提高网站收入都有所帮助. 对于 ...

  7. vnc 多用户登录

    1, 创建新用户: $ useradd tom $ passwd tom 2,  登录到tom账户,创建vnc实例: $ su tom$ vncserver 这时可以看看~/.vnc/目录下,有一些如 ...

  8. CentOS查看操作系统信息(重要)

    1.查看物理CPU的个数 [root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc ...

  9. 在word文档中如何插入Mathtype公式

    将mathtype公式插入到word文档中,是mathtype公式编辑器最基本的操作.当在Mathtype数学公式编辑器中编辑好公式之后,点击文件->更新XXX文档(XXX为当前编辑的word文 ...

  10. pcduino nfs挂在光盘

    1.首先在开发板上安装nfs-common 2.在pc端安装nfs-server 3.配置nfs vim /etc/exports 添加:/home/nfsroot *(rw,sync,no_root ...