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. Ubuntu安装MediaInfo

    Ubuntu版 打包下载:艺搜下载 适用于Ubuntu 12.10(i386) 安装libzen0_v0.4.29 _i386.xUbuntu_12.10.deb 安装libmediainfo0_v0 ...

  2. 关于Cocos2d-x中地图轮播的实现

    播放背景,两个背景的图片是一样的,紧挨着循环播放,以下代码写在playBackground()方法中,并在GameScene.cpp的init方法中调用. void GameScene::playBa ...

  3. PHP利用memcache缓存技术提高响应速度

    PHP下memcache模块是一个高效的守护进程,提供用于内存缓存的过程式程序和面向对象的方便的接口,特别是对于设计动态web程序时减少对数据库的访问.memcache也提供用于通信对话(sessio ...

  4. jQuery-处理class属性

    1.addClass方法 为每个匹配的元素添加指定的样式类名 参数类型说明: 1)class名称(字符串) 每个匹配元素添加的一个或多个用空格隔开的样式名 2)function(index, curr ...

  5. optimization blocks (csapp chapter 5.1)

    p_511 编译器在没有指示下,会做‘ safe optimization',因此有些优化在没有参数的指示下是不会对代码做优化的,故在程序中应该避免某一类代码,因为它们妨碍了编译器做优化. optim ...

  6. unity如何停止不用字符串方式开启协程的方法

    通常我们知道开启协程用StartCoroutine("Method"); 停止协程用StopCoroutine("Method"); 如果我们想要终止所有的协程 ...

  7. Systemd on ubuntu

    何为 systemd? systemd 是一个 Linux 下的系统和会话管理器,与 SysV 和 LSB 启动脚本兼容.systemd 提供了积极的并行处理能力,使用套接字(socket)和 D-b ...

  8. ubuntu下使用sublime text进行C编程开发尝鲜

    1 选择编译系统 2 编写文件,编译(Ctrl+B)运行(Shift+Ctrl+B)

  9. linux下 安装mysql教程

    安装环境:系统是 centos6.5 1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6. ...

  10. 使用Unity制作的一个望远镜特效,在狙击手游戏中非经常见

    仅仅须要编写一个脚本文件,然后就能随意设置放大缩小的速度.以及程度.