下面是要用户名和密码连接数据库的操作:

一、定义连接字符串,用来链接SQL Server

string str_con = "server=.(服务器名称一般为 . );database=WordBook(数据库名称);uid=sa(服务器登录名);pwd=123(服务器密码)";

二、有了链接字符串之后,开始数据库操作

1、数据库查询

定义了一个查询方法,用来调用:

public DataSet queryDatabase(string sql)    //sql是查询语句
        {
            //储存数据的工具初始化
            DataSet ds = new DataSet();
            //相当于链接数据库的一个工具类(连接字符串)
            using (SqlConnection con = new SqlConnection(str_con))
            {
                con.Open();  //打开
                //用SqlConnection工具链接数据库,在通过sql查询语句查询结果现存入sql适配器
                SqlDataAdapter sda = new SqlDataAdapter(sql,con);   //(查询语句和连接工具)
                sda.Fill(ds);    //将适配器数据存入DataSet工具中
                con.Close();   //用完关闭SqlConnection工具
                return ds;
            }
        }

在需要查询数据库的地方调用此方法:

private void query() {
            //查询WordBook表中,book_key字段数值为7的那一行数据
            //string sql = "select * from Word_Book where book_key='7'";

string sql = "select * from Word_Book ";     //查询全表
            DataSet ds = help.queryDatabase(sql);        //查询到数据
            DataTable dt = ds.Tables[0];                       //把查到的数据存入数据表中
            sqlDataResult.DataSource = dt;                  //把数据赋值给gridView展示(全表)

// string str=dt.Rows[0][1].ToString();//查找表中某一个内容
            // MessageBox.Show(str);
        }

2、数据库添加、删除、修改

C#中数据库的添加、删除、修改用的是同断代码,所以定义了一个方法,用来调用:

public int changeSqlData(String sql)
        {
            using(SqlConnection con=new SqlConnection(str_con))
            {
                con.Open();
                //操作数据库的工具SqlCommand
                SqlCommand cmd = new SqlCommand(sql, con);//(操作语句和链接工具)
                int i=cmd.ExecuteNonQuery();//执行操作返回影响行数()
                con.Close();
                return i;
            }
        }

在需要操作数据库的地方调用此方法:

①数据库添加:

private void btn_add_Click(object sender, EventArgs e)
        {
            //sql添加数据 insert into 表名(字段,字段...) values(‘内容’,‘内容’...)
            string sql = "insert into Word_Book(book_word_CN,book_word_JP,book_word_Roma,book_nominal," +
                "book_gloze) values('" + book_word_CN.Text.Trim()+"','"+ book_word_JP .Text.Trim() + "','"
                + book_word_Roma .Text.Trim() + "','"+ book_nominal.Text.Trim() + "','" + book_gloze.Text.Trim() + "')";
                int i=help.changeSqlData(sql);
            if (i == 0) MessageBox.Show("添加失败", "提示:");
            else MessageBox.Show("添加成功", "提示:");
        }

②数据库删除:

private void btn_delete_Click(object sender, EventArgs e)
        {
            //根据同个字段中不同内容删除多行
            //delete from Word_Book where book_key in (1,2,3)

//sql删除数据delete 表名 where 字段='内容'单个条件用or链接,多个条件用and链接
            string sql = "delete from Word_Book where book_key='"+book_key.Text.Trim()+"'";
            int i=help.changeSqlData(sql);
            if (i == 0) MessageBox.Show("删除失败", "提示:");
            else MessageBox.Show("删除成功", "提示:");
        }

②数据库更新:

private void btn_update_Click(object sender, EventArgs e)
        {
            //根据条件修改多个字段内容
            //update 表名 set 字段='内容', 字段='内容' where 条件字段='内容'
            string sql = "update Word_Book set book_word_CN='"+book_word_CN.Text.Trim()+
                "', book_word_JP='"+book_word_JP.Text.Trim()+"'where book_key='" + book_key.Text.Trim()+"'";
            int i = help.changeSqlData(sql);
            if (i == 0) MessageBox.Show("修改失败", "提示:");
            else MessageBox.Show("修改成功", "提示:");
        }

3、数据库事务操作数据库

用数据库事务相当于把数据库操作捆绑执行,只要其中一条sql语句失败,直接返回,不进行数据库操作,只有全部执行正确,才会更新数据库。

定义了一个查询方法,用来调用:

public bool openTrans(List<String> lst)
        {
            using (SqlConnection con=new SqlConnection(str_con))
            {
                con.Open();
                //开启事务
                SqlTransaction trans = con.BeginTransaction();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;//添加链接工具
                cmd.Transaction = trans;//添加事务
                try
                {
                    for (int i = 0; i < lst.Count; i++)
                    {
                        string sql=lst[i].ToString();//获取sql语句
                        cmd.CommandText = sql;//添加sql语句
                        cmd.ExecuteNonQuery();//执行
                    }
                    trans.Commit();//执行完成之后提交
                    return true;
                }
                catch(Exception e)
                {
                    //执行sql语句失败,事务回滚
                    trans.Rollback();
                    return false;
                }
                finally
                {
                    con.Close();
                }
            }
        }

在需要操作数据库的地方调用此方法:

private void transql_Click(object sender, EventArgs e)
        {
            List<string> lst = new List<string>();
            lst.Add("update Word_Book set book_word_CN='" + book_word_CN.Text.Trim() +
                "', book_word_JP='" + book_word_JP.Text.Trim() + "'where book_key='" + book_key.Text.Trim() + "'");
            lst.Add("update Word_Book set book_word_Roma='" + book_word_Roma.Text.Trim() +
               "', book_nominal='" + book_nominal.Text.Trim() + "'where book_key='" + book_key.Text.Trim() + "'");
            Boolean isOk= help.openTrans(lst);
            if (!isOk) MessageBox.Show("修改失败", "提示:");
            else MessageBox.Show("修改成功", "提示:");
        }

C#增删改查操作完成,想要方便可以自定义一个类,把所有的方法写在里面,当有用到的时候可以初始化该类的实例用来调用类里的方法

在VS2012中新建一个Windows窗口应用程序,并在Form中放置DataGridView和Button两个控件,在Button的单击响应事件中连接数据库:

private void button1_Click(object sender, EventArgs e)
{
String connsql = "server=.;database=MyDBName;integrated security=SSPI"; // 数据库连接字符串,database设置为自己的数据库名,以Windows身份验证 try
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = connsql;
conn.Open(); // 打开数据库连接 String sql = "select * from student"; // 查询语句 SqlDataAdapter myda = new SqlDataAdapter(sql, conn); // 实例化适配器 DataTable dt = new DataTable(); // 实例化数据表
myda.Fill(dt); // 保存数据 dataGridView1.DataSource = dt; // 设置到DataGridView中 conn.Close(); // 关闭数据库连接
}
}
catch (Exception ex)
{
MessageBox.Show("错误信息:" + ex.Message, "出现错误");
}
}

该类中封装了关于数据库连接和操作的方法,各个功能模块在需进行数据库操作时只需调用相应的函数:

//引入的命名空间
using System.Data.SqlClient;//用于SQL Sever数据访问的命名空间
using System.Data; //DataSet类的命名空间
using System.Windows.Forms; //DataGridView控件类的命名空间 //执行指定的SQL命令语句(insert,delete,update等),并返回命令所影响的行数
public static int executeCommand(string sqlStr)
{
SqlConnection sqlConnection1 = new SqlConnection("server=dell-PC;database=11071312HotelSys;uid=sa;pwd=xiaoyi9421");//创建数据库连接(字符串中是我个人的数据库信息)
sqlConnection1.Open(); //打开数据库连接
SqlCommand sqlCommand1 = new SqlCommand(sqlStr, sqlConnection1); //执行SQL命令
int Succnum = sqlCommand1.ExecuteNonQuery();
return Succnum;
} //查询(select)指定的数据记录(多行多列),并填充到数据控件DataGridView中
public static void queryDataToGrid(string sqlStr, DataGridView dataGridView1)
{
SqlConnection sqlConnection1 = new SqlConnection("server=dell-PC;database=11071312HotelSys;uid=sa;pwd=xiaoyi9421");//创建数据库连接
SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter(sqlStr, sqlConnection1);//利用已创建好的sqlConnection1,创建数据适配器sqlDataAdapter1
DataSet dataSet1 = new DataSet(); //创建数据集对象
sqlDataAdapter1.Fill(dataSet1); //执行查询,查询的结果存放在数据集里
dataGridView1.DataSource = dataSet1.Tables[]; //把数据集中的查询结果绑定到dataGridView1中
} //查询(select)指定的数据(单个数据,假设为string类型),并返回
public static string queryData(string sqlStr)
{
SqlConnection sqlConnection1 = new SqlConnection("server=dell-PC;database=11071312HotelSys;uid=sa;pwd=xiaoyi9421");//创建数据库连接
SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter(sqlStr, sqlConnection1);//利用已创建好的sqlConnection1,创建数据适配器sqlDataAdapter1
DataSet dataSet1 = new DataSet(); //创建数据集对象
sqlDataAdapter1.Fill(dataSet1); //执行查询,查询的结果存放在数据集里
return dataSet1.Tables[].Rows[]["列名"].ToString(); //把查询结果的第一行指定列下的数据以string类型返回
}

当在各个功能模块中需要进行数据库操作时,只需指定要执行的SQL语句,调用一下数据库工具类中的方法即可实现,下面给了一些基本的的SQL操作(单表)

//增
sqlStr = "insert into 表名( 列名1 , 列名2 )values( 插入值1 , 插入值2 )";
//执行指定的SQL命令语句,并返回命令所影响的行数
int Succnum = MyTool.executeCommand(sqlStr);
if (Succnum > ) MessageBox.Show("录入成功"); //删
sqlStr = "delete from 表名 where 删除条件";
int Succnum = MyTool.executeCommand(sqlStr);
if (Succnum > ) MessageBox.Show("删除成功"); //改
sqlStr = "update 表名 set 列名1 = 更新值1 , 列名2 = 更新值2";
int Succnum = MyTool.executeCommand(sqlStr);
if (Succnum > ) MessageBox.Show("更新成功"); //查一组数据
sqlStr = "select 列名1 , 列名2 from 表名 where 查询表达式";
MyTool.queryDataToGrid(sqlStr, dataGridView1);//填充到数据控件DataGridView中 //查单个数据
sqlStr = "select 列名 from 表名 where 查询表达式";
textBox1.Text = MyTool.queryData(sqlStr);//填充到文本框textBox1中

c#操作数据库的增删改查语句及DataGridView简单使用的更多相关文章

  1. java操作数据库:增删改查

    不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...

  2. 9.5Django操作数据库的增删改查

    2018-9-5 18:10:52 先贴上笔记 day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n ...

  3. Java操作数据库实现"增删改查"

    本文主要讲解JDBC操作数据库    主要实现对MySql数据库的"增删改查" 综合概述: JDBC的常用类和接口 一   DriverManager类 DriverManage类 ...

  4. python测试开发django-13.操作数据库(增删改查)

    前言 django的models模块里面可以新增一张表和字段,通常页面上的数据操作都来源于数据库的增删改查,django如何对msyql数据库增删改查操作呢? 本篇详细讲解django操作mysql数 ...

  5. Java数据库连接——JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  6. Java数据库连接--JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  7. C#通过窗体应用程序操作数据库(增删改查)

    为了体现面向对象的思想,我们把“增删改查”这些函数封装到一个数据库操作类里: 为了便于窗体程序与数据库之间进行数据交互,我们建一个具有数据库行数据的类,通过它方便的在窗体程序与数据库之间传输数据: 我 ...

  8. datagridview数据绑定操作数据库实现增删改查

    DataSet数据集,数据缓存在客户端内存中,支持断开式连接.DataGridView控件绑定DataSet时,它自动的改变的DS的行的状态,而且在做增删改查的时候,可以借助SqlCommandBui ...

  9. java中如何操作数据库(增删改查)

    EntityManager 是用来对实体Bean 进行操作的辅助类.他可以用来产生/删除持久化的实体Bean,通过主键查找实体bean,也可以通过EJB3 QL 语言查找满足条件的实体Bean.实体B ...

随机推荐

  1. 【网络编程1】网络编程基础-TCP、UDP编程

    网络基础知识 网络模型知识 OSI七层模型:(Open Systems Interconnection Reference Model)开放式通信系统互联参考模型,是国际标准化组织(ISO)提出的一个 ...

  2. Mashup

    简介 mashup是糅合,是当今网络上新出现的一种网络现象,将两种以上使用公共或者私有数据库的web应用,加在一起,形成一个整合应用.一般使用源应用的API接口,或者是一些rss输出(含atom)作为 ...

  3. 读SRE Google运维解密有感(二)

    前言 这是读“SRE Google运维解密”有感第二篇,第一篇参见 这本书最近又读了几章,结合自己的经历,有些地方真的能感同身受,有些地方也惊叹SRE充满辩证的思想,总之SRE是好一本好书,会给你很大 ...

  4. centos重启报错Umounting file systems:umount:/opt:device is busy

    系统重启报错: Umounting file systems:umount:/opt:device is busy 只能硬关机,回想一下最近刚安装了nod32 for linux x64的杀毒软件,开 ...

  5. HDU 5288 OO&rsquo;s Sequence

    题意: 给你一个序列, 有一个函数 F(L,R) 其中 ai 均不能 被 aL - aR整除的  函数值是这个ai个数 思路 : 反过来求 满足这样的条件的 ai 的区间,然后求和 #include& ...

  6. 使用console进行 性能测试 和 计算代码运行时间

    原文:http://www.tuicool.com/articles/JrARVjv 对于前端开发人员,在开发过程中经常需要监控某些表达式或变量的值,如果使用用 debugger 会显得过于笨重,最常 ...

  7. redhat5 设置静态ip

    Last login: Sat Oct 14 16:19:13 2017 # 进入ip凭证文件设置地方 [root@oracle ~]# cd /etc/sysconfig/network-scrip ...

  8. 服务端工程师入门与进阶 Java 版

    前言 欢迎加入我们.这是一份针对实习生/毕业生的服务端开发入门与进阶指南.遇到问题及时问你的 mentor 或者直接问我. 建议: 尽量用google查找技术资料. 有问题在stackoverflow ...

  9. web----WSGI

    概念: WSGI协议其实是定义了一种server与application解耦的规范 WSGI规范简单理解:一方面给Server提供接口,凡是以这种接口的web服务器,都是遵循WSGI规范的 另一方面给 ...

  10. js中字符串概念

    字符串概念:所有带单引号和双引号的叫做字符串 字符串的数据类型:字符串既是基本数据类型,又是复合数据类型. 字符串存储在内存里[只读数据段]的地方.字符串的变量里存储的是字符串的地址. [注]使用起来 ...