C#数据库编程—自学总结

时间:2024.5.15

C#网络编程自学总结:

首先建立链接:SqlConnection (1)C#自带的Sql Server的链接 SqlConnection conn=new SqlConnection

(Properties.Settings.Default.DatabaseConnectionString);

(2)C#嵌套的MySql的链接

string constring = "Database=数据库名(kftv);Data Source=服务器地址;User Id=root;Password=密 码;pooling=false;CharSet=utf8;port=3306";

MySqlConnection conn = new MySqlConnection(constring); 其次

通过SQlCommand对象提供的方法(1、ExecuteReader方法<返回数据库读取的各个字段> 2、ExecuteNonQuery方法<返回操作所影响的数据库行数> 3.ExecuteScaler方法<用于查询结果为一个值的情况>)

进行数据库的增删改查的操作命令: < Sql Server与Mysql的操作相同>

string strSql="select * from userinfo where username='"+userName+"'"+"and password ='"+userPwd+"'"; SqlCommand cmd = new SqlCommand(strSql,conn);

SqlDataReader dr = cmd.ExecuteReader(); // SQlCommand对象提供的ExecuteReader方法:

再次 保存本地计算机内存

SqlDataAdapter对象通过无连接的方式完成数据库和本地DataSet之间的交互。

一般步骤:

1) 创建SqlConnection的实例;

2) 创建SqlDataAdapter的实例,需要的话,根据select语句生成其他SQL语句;

3) 创建DataSet的实例;

4) 使用Fill方法将数据库中的表填充到DataSet表中;

5) 利用DataGridView或者其他控件对象编辑或显示数据; 例如::;

public void ShowGridView(string sql,string tableName) {

string constring = "Database=kftv;Data Source=服务器名;User

Id=root;Password=123;pooling=false;CharSet=utf8;port=3306"; MySqlConnection conn = new

MySqlConnection(constring);

conn.Open();

MySqlCommand commn = new MySqlCommand ("set names utf8", conn); commn.ExecuteNonQuery();

string sql = "select * from employeeinfo ";

MySqlDataAdapter mda = new MySqlDataAdapter(sql, conn); DataSet ds = new DataSet();

mda.Fill(ds,tableName );

this.employeeinfoDataGridView.DataSource=ds.Tables[tableName ];

conn.Close();

}

控件与数据库的绑定

在拖放控件实现绑定时候,数据源默认为首行做插入或修改时不小心会修改错误,此时需--->解绑定

//dataGridView1.ClearSelection();

//dataGridView1.CurrentCell = null;

//dataGridView1.Rows[0].Selected = false;

<ShiYanDatabase为数据连接table>

ShiYanDatabaseDataSet ds=new ShiYanDatabaseDataSet(); ShiYanDatabaseDataSetTableAdapters.Table1TableAdapter adapter = new

ShiYanDatabaseDataSetTableAdapters.Table1TableAdapter(); //根据自己的数据源添加绑定

adapter.Fill(ds.Table1 );

dataGridView1.DataSource = ds.Table1 ;//绑定dataGridView1

listBox.DataSource=ds.Table1;//绑定ListBox 其他以此类推其他控件或组件

//下面两行是dataGridView1中显示与数据库中表的属性值信息根据表的属性列对应添加。保证数据表的一致性

dataGridView1.Columns[0].HeaderText = "编码"; dataGridView1.Columns[1].HeaderText = "名称";

REVENGE,ABCDEFG2E6AZQD

private void fmload()

{

string constring="Database=kftv;Data

Source=125.219.39.82;User

Id=root;Password=123;pooling=false;CharSet=utf8;port=3306"; MySqlConnection conn = new

MySqlConnection(constring);

string sql="select * from newscommentinfo"; MySqlCommand cm = new MySqlCommand(sql, conn);

conn.Open();

MySqlDataReader r = cm.ExecuteReader(); while (r.Read())

{

//var s =

// from rs in r[r.Read()]

// select rs;

listBox1.Items.Add(string.Format("{0},{1}",r[0],r[1])); dataGridView1.DataSource = r[0];

}

r.Close();

// kftvDataSet ds=new kftvDataSet (); // //DataTable table = new DataTable(); // MySqlDataAdapter adapter = new

MySqlDataAdapter(sql,conn);

// //adapter.Fill(table);

// //adapter.Fill(ds);不行,表空

// adapter.Fill(ds, "newscommentinfo"); // dataGridView1.DataSource =

ds.Tables["newscommentinfo"];

//// this.dataGridView1.DataSource = table;

conn.Close();

}

1、直接修改表的列名,我认为这是一种最简单,最方便,也可通过

类实现(多个显示页面时)的方法: 实现语句:

ds.Tables[0].Columns["zj_xh"].ColumnName = "序号" 全部代码

如下: private void button1_Click ( object sender,

EventArgs e ) //方法1

{ ClsDB.ClsDBControl cb = new

ClsDB.ClsDBControl(); //实例化连接类

SqlConnection connection = cb.ConDb();//建立连接 string strSql = "select * from ssskyjsj"; //sql 语句

SqlDataAdapter da = new SqlDataAdapter(); // 实例化适配器 SqlCommand sqlcmd=new SqlCommand (strSql ,connection ); //sql

命令 da.SelectCommand = sqlcmd; //使用

SqlDataAdapter的查询 DataSet ds = new DataSet(); // 用 DataSet 方式 ds.Clear();

da.Fill(ds); //修改填充表的列名

ds.Tables[0].Columns["zj_xh"].ColumnName = "序号";

ds.Tables[0].Columns["dahm"].ColumnName = "档案号码";

ds.Tables[0].Columns["gw"].ColumnName = "岗位";

ds.Tables[0].Columns["syry"].ColumnName = "使用人员"; this.dataGridView1.DataSource = ds.Tables[0].DefaultView; if (connection.State == ConnectionState.Open) connection.Close();// 关闭连接 }

2、在sql语句中,给源表的列加中文列名

方法:将方法1中的语句:string strSql = "select * from

sqltable";

变为: string strSql = "select zj_xh as '序号',

dahm as '档案号码',

gw as '岗位',

syry as '使用人员'

from ssskyjsj";

完整代码如下:

private void button4_Click ( object sender, EventArgs e ) //

方法二:给查询语句的列名加中文别名 { ClsDB.ClsDBControl cb = new ClsDB.ClsDBControl(); //实例化

连接类

SqlConnection connection = cb.ConDb();//建立连接

string strSql = "select zj_xh as '序号',dahm as '档案号码',gw

as '岗位',syry as '使用人员' from sqltable"; //sql 语句

SqlDataAdapter da = new SqlDataAdapter(); // 实例化适配器

SqlCommand sqlcmd = new SqlCommand(strSql, connection); //sql命令 da.SelectCommand = sqlcmd; //使用

SqlDataAdapter的查询 DataSet ds = new

DataSet(); // 用 DataSet 方式

ds.Clear();

try

{

da.Fill(ds);

this.dataGridView1.DataSource = ds.Tables[0].DefaultView; //MessageBox.Show("ok!");

}

catch {

MessageBox.Show("error!"); } if (connection.State == ConnectionState.Open)

connection.Close();// 关闭连接

}

3、映射 每一次用DataAdapter来填充DataSet时,都是根据构架来填充数据的.如果想把DataSet中的数据表和表列名根据自己得情况定义一个映射, 如把英文表名称更换成中文表名,把英文列名更换成中文列表,就需要在DataAdapter中进行表映射和列名映射.

表映射方法及完整代码如下:

private void button1_Click_1 ( object sender, EventArgs e )

//方法三:通过映射表及中文列名来显示sql表内容

{

ClsDB.ClsDBControl cb = new ClsDB.ClsDBControl(); //实

例化连接类

SqlConnection connection = cb.ConDb();//建立连接 string strSql = "select * from sqltable"; //sql 语句 SqlDataAdapter da = new SqlDataAdapter(); // 实例化适配器

SqlCommand sqlcmd = new SqlCommand(strSql, connection); //sql

命令

da.SelectCommand = sqlcmd; //使用SqlDataAdapter的查询 DataSet ds = new DataSet(); // 用 DataSet 方式 ds.Clear(); // 映射

//DestTable 为设定的ds 中的用da填充的表名,为映射源表,

DestTable 为映射表名(有点象视图view) // 1 表映射

// 语法:

DataAdapter.TableMappings.Add(SourceTable,DestTable); da.TableMappings.Add("SourceTable", "DestTable"); da.TableMappings.Add("DestTable", "DestTable"); //这一步不能

省,否则在下面的列名映射时会提示找 //DestTable表 //da.Fill(ds, "DestTable");//

填充源表

//2 列映射 // 语法:

dataAdapter.TableMapping[DestTable].ColumnMappings.Add(sourceField,destField);; // 注意:TableMappings 是属性,故后面带方括号,我曾用成圆括号(),找好久才发现这个错误

da.TableMappings["DestTable"].ColumnMappings.Add("zj_xh", "序号");

da.TableMappings["DestTable"].ColumnMappings.Add("dahm", "

档案号码");

da.TableMappings["DestTable"].ColumnMappings.Add("gw", "岗

位");

da.TableMappings["DestTable"].ColumnMappings.Add("syry", "

使用人员"); da.Fill(ds, "DestTable");//填

充表,

注意 1、该条语句只能在这个位置,放在前面,可显示内容,但

不能映射列名;

2、只能用da.Fill(ds, "DestTable"),而不能用 da.Fill(ds,

"SourceTable")

try

{ this.dataGridView1.DataSource = ds; this.dataGridView1.DataMember = "DestTable"; //MessageBox.Show("ok!"); }

catch

{ MessageBox.Show("error!"); } if (connection.State == ConnectionState.Open) connection.Close();// 关闭连接

}

DataGridView 默认选中行

2012-03-29 10:51:32| 分类: C# 控件 | 标签:datagridview |字号 订阅

最近用Winform的DataGridView遇到不少问题,

昨晚就碰到个默认选中行的问题。DataGridView在添加数据后会默认选中第一个单元格或者第一行,我就想取消它的默认选中行。 后来才知道得把它放到窗体的Load事件中,于是添加了form1_Load事件一试,终于没有默认选中的行了。不得如果更新DataGridView的数据之后又会默认选中第一行,所以我就在DataGridView绑定数据之后又加上了ClearSelection()。这样一来,不论是启动窗体之后还是重新更新数据,都不会有默认选中行了。

代码就是这几个,只要放对地方,其中任意一个都能实现取消选中的效果。

dataGridView1.ClearSelection();

//dataGridView1.CurrentCell = null;

//dataGridView1.Rows[0].Selected = false;

控件与数据库的绑定

<ShiYanDatabase为数据连接table>

ShiYanDatabaseDataSet ds=new ShiYanDatabaseDataSet();

ShiYanDatabaseDataSetTableAdapters.Table1TableAdapter adapter = new

ShiYanDatabaseDataSetTableAdapters.Table1TableAdapter();//根据自己的数据源添加绑定

adapter.Fill(ds.Table1 );

dataGridView1.DataSource = ds.Table1 ;//绑定dataGridView1

listBox.DataSource=ds.Table1;//绑定ListBox 其他以此类推

更多相关推荐:
Java暑假自学总结

Java暑假自学总结第一节:配置java的环境1).到官方网站(http://java.sun.com)去下载jdk1.6.0—26;2).一一般建议大家开始将jdk安装到C盘,因为这便于记忆和查找;3).配置…

小学教师自学总结

李鹏程一、教师,珍惜儿童对你的信任“教师面对的是儿童极易受到伤害的,极其脆弱的心灵,学校里的学习不是毫无热情地把知识从一个头脑里装进另一个头脑里,而是师生之间每时每刻都在进行的心灵的接触。”其实,师生之间的关系…

个人自学总结

20xx---20xx学年度上学期个人自学总结赵俊飞作为教师,既应有高水平的思想政治素质、爱岗敬业的职业道德素质,也应该不断地学习和接受培训。这一学期我要立足岗位,以集体备课、业务学习和课堂教学研究为业务学习载…

小学教师继续教育寒假个人自学总结

重新小学晏禄通过三天二十四学时的继续教育的自主培训学习,确实让我从思想上对教育有了重新的认识和体会,从教学设计和理念上将旧的教学方法得以扭转,教育教学工作也取得了很大的进步。基本达到了自己拟定的学习计划。现就自…

教师自学总结

教师个人自学总结曹东升按照本学期制定学习计划的学习,我相信对于自我提高是有很大的帮助的。通过学习、体验、反思、感悟、实践、理论联系实际,提高了自身的理论素养、业务水平,掌握了一些教学方法,提高了自身的教学水平。…

自学总结

自学总结本人于20xx年x月顺利通过全国统一成人招生(专升本)考试,幸运地被长安大学录取。20xx年x月x日到长安大学报名后,成为本科函授生,实现了我自20xx年自河北地质职工大学毕业参加工作以后,一心想要…

PS 自学总结

撤销、后退是:编辑-后退一步放大缩小、移动图片图片:1、按住alt滚动鼠标滑轮就可以放大或缩小。2、按住空格鼠标变成抓手工具移动就可以。如何把这扫描斜的图片弄正打开文件,ctrl+j复制新图层,ctrl+t旋转…

自考总结心得

通过几年的努力我顺利完成了专科段的考试特此申请毕业回顾自考的这些年我感受颇深经历了一次次考试的失败又一次次的爬起来从新再考自学考试磨练了我的意志使我越挫越勇我深刻理解到了自学考试这四个字的意义自学考试难就难在没...

自学考试条件及总结

自学考试条件及总结1自考无任何限制小学文凭没有都可以报考只用身份证或户口簿16周岁以下无身份证可用户口簿报名去常住地区招生考试办公室报名每门课程40元2先在省自考网上报名然后去报考点去确定一般都是常住地区招生考...

自学考试学习方法总结

勤奋技巧成功首先正确理解了学习和考试的关系我认为学习的目的是为了掌握新的知识而考试只是验证自己掌握知识程度的一种手段因此在学习过程中我刻苦钻研尽可能全面熟练地掌握书中的内容而不是单纯从考试的角度去考虑哪些内容需...

二级注册建造师继续教育自学课程小结

二级注册建造师继续教育自学课程小结二级注册建造师继续教育的目的在于开阔视野拓展知识面掌握工程建设有关法律法规标准规范增强职业道德和诚信守法意识熟悉工程建设项目管理的新方法新技术总结工作中的经验教训进一步提高道德...

自学脉法的第一次总结

自学脉法的第一次总结感悟学习任何流派的中医典籍一定要从典籍中建立起自己的一个人体模型而任何中医典籍就是在论述人体的这样一个模型或具体描述如四圣心源或以方说意如医宗金鉴的删补名医方论但是最终要以脉法的入门才代表人...

自学总结(60篇)