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. iOS边练边学--九宫格布局

    一.介绍一下ViewController中的结构 二.九宫格设计思路 三.代码实现 // 点击增加按钮 - (void)add:(UIButton *)btn { // 定义一行中的列数(个数) NS ...

  2. JavaScript(二):JavaScript语法及数据类型

    一.JavaScript语法 1.区分大小写ECMAScript中的一切,包括变量.函数名和操作符都是区分大小写的.例如:text和Text表示两种不同的变量.2.标识符所谓标识符,就是指变量.函数. ...

  3. golang 垃圾回收 gc

    http://ruizeng.net/golang-gc-internals/ 摘要 在实际使用go语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究.本文对 ...

  4. JS实现点击表头表格自动排序(含数字、字符串、日期)

    这篇文章主要介绍了利用JS如何实现点击表头后表格自动排序,其中包含数字排序.字符串排序以及日期格式的排序,文中给出了完整的示例代码,并做了注释,相信大家都能看懂,感兴趣的朋友们一起来看看吧. < ...

  5. 关于Cocos2d-x中类与类之间调用彼此方法的机制

    1.一般情况下都是把需要实例化的对象类的头文件包含到一个GameController.h中,再在GameController.cpp文件里面去使用各种对象类的方法来实现游戏的逻辑. 2.还有的时候会把 ...

  6. GDB十分钟教程 (链接)

    未联系作者,只能放个链接了. 十分赞的gdb教程. GDB十分钟教程

  7. 控件activeX开发之项目ffmpeg解码h264——总结

    1. 编译好ffmpeg的lib库和dll库 2. 播放器作为一个dilog类player,然后在ctrol中的oncreate重写方法中用全局属性cplayer *player里new cplaye ...

  8. jQuery数组处理详解(转)

    1. $.each(array, [callback]) 遍历[常用] 解释: 不同于例遍 jQuery 对象的 $.each() 方法,此方法可用于例遍任何对象(不仅仅是数组哦~). 回调函数拥有两 ...

  9. 防止 apk反编译 jocky-- java混淆代码 (转至:http://my.oschina.net/f839903061/blog/72554)

    1.下载jocky,解压后把整个文件夹复制到Eclipse的plugin目录.2.重启Eclipse,在项目上点右键,如果出现jocky菜单,则安装成功. 3.在项目上点右键,选菜单jocky-> ...

  10. Session超时问题(AOP 过滤器)

    public class TimeoutAttribute : ActionFilterAttribute { public override void OnActionExecuting(Actio ...