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, , "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表控件的绑定的更多相关文章
- 将数据库数据添加到ListView控件中
实现效果: 知识运用: ListView控件中的Items集合的Clear方法 //从listView控件的数据项集合中移除所有数据项 补充:可以使用Remove或RemoveAt方法从集合中移除单个 ...
- 在Bootstrap开发框架中使用dataTable直接录入表格行数据(2)--- 控件数据源绑定
在前面随笔<在Bootstrap开发框架中使用dataTable直接录入表格行数据>中介绍了在Web页面中使用Jquery DataTable插件进行对数据直接录入操作,这种处理能够给用户 ...
- WinForm控件复杂数据绑定常用数据源(对Combobox,DataGridView等控件DataSource赋值的多种方法)
开始以前,先认识一下WinForm控件数据绑定的两种形式,简单数据绑定和复杂数据绑定. 1) 简单数据绑定 简单的数据绑定是将用户控件的某一个属性绑定至某一个类型实例上的某一属性.采用如下形式进行绑定 ...
- TreeView树形控件递归绑定数据库里的数据
TreeView树形控件递归绑定数据库里的数据. 第一种:性能不好 第一步:数据库中查出来的表,字段名分别为UNAME(显示名称),DID(关联数据),UTYPE(类型) 第二步:前台代码 <% ...
- ASP.NET中后台数据和前台控件的绑定
关于ASP.NET中后台数据库和前台的数据控件的绑定问题 最近一直在学习个知识点,自己创建了SQL Server数据库表,想在ASP.NET中连接数据库,并把数据库中的数据显示在前台,注意,这里的数据 ...
- ABAP表控件查询
1.准备工作 首先SE11自建一个数据库表(数据元素,域信息请提前建好) 2.编写代码 2.1 新建一个子屏幕 子屏幕中需新定义一个文本输入框,命名为:key_word,新建一个表控件,命名为tab, ...
- C#端加载数据库,Combobox与Node控件绑定数据源demo示例
最近一直在做网页.用的js比较多,最近需要做一个C#相关的demo,一开始还有点不适应,写了几句有点感觉了 本篇博客的主要内容是C#怎么读取数据库文件里的数据以及相关控件如何绑定数据源,所做的Demo ...
- Atitit..组件化事件化的编程模型--(2)---------Web datagridview 服务器端控件的实现原理and总结
Atitit..组件化事件化的编程模型--(2)---------Web datagridview 服务器端控件的实现原理and总结 1. 服务端table控件的几个流程周期 1 1.1. 确认要显示 ...
- Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9
Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9 1. 主要的涉及的技术 1 2. 主要的流程 1 3. 调用法new confirmO9t(); 1 4. ...
随机推荐
- 实现整数转化为字符串函数itoa()函数
函数原型: char *itoa( int value, char *string,int radix);原型说明:value:欲转换的数据.string:目标字符串的地址.radix:转换后的进制数 ...
- Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)
linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...
- e661. 确定图像中是否有透明像素
// This method returns true if the specified image has transparent pixels public static boolean hasA ...
- fatal error: malformed or corrupted AST file: 'Unable to load module Darwin.pcm 问题解决
xcode5 编译project.偶然碰到了以下的问题: fatal error: malformed or corrupted AST file: 'Unable to load module &q ...
- CentOS命令top下你不一定懂的cpu显示信息
在使用top命令的时候会看到这么一行: 里面的各个值分别是什么意思呢? 今天被问到这个问题,发现答的不是很清楚.果然啊,天天用最多的top命令都还没摸透...惭愧...于是就查了些资料: 官方解释 C ...
- is_file,is_dir,file_exists
is_file()和file_exists()效率比较,结果当文件存在时,is_file函数比file_exists函数速度快14倍,当文件不存在时,两者速度相当.同理,当文件目录存在时,is_dir ...
- Xcode 5.0 编译低版本app
Xcode 5.0 默认的编译环境是iOS7,编译出来的app,安装到iOS7.0版本以上的手机上,会表现出iOS7.0的风格.兼容不太好的应用,布局上可能会因此乱八七糟. 如果还不想让app升级到i ...
- js定义对象
1.工厂模式 function createPerson(name,age,job){ var o = {}; o.name = name; o.age = age; o.job = job; o.s ...
- 最全Java学习路线图——Java学习指南
准备篇 适用/适合人群:适合基础小白 目标:掌握JavaSE. ●技术点小节: 1.开发工具的安装配置的介绍 2.JDK安装 3.DOS环境编程 4.Eclipse的安装使用 ●JAVA基础 1.基本 ...
- linux定时任务cron 安装配置
名词解释: cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表. 软件包安装: 要使用cron服务,先要安装vixie-cron软件包和crontabs软件包,两个软件包作 ...