目录

必要准备

SQL语句编写加执行

编写

执行

创建执行器

ExecuteNonQuery()方式执行

ExecuteScalar()方式执行

二者区别

ExecuteReader()方式执行

实例:

1-创建一张数据表

​编辑

2-向表中插入数据

3-修改表中数据

4-删除表中数据

5-读取表中数据


必要准备

你得有一个sqlserver数据库,并且要和vs项目连接。

关于VS连接sqlserver数据库的教程前几天发过了,链接如下

VS2022连接sqlserver数据库教程_予我心安A3的博客-CSDN博客_vs如何连接数据库sqlserver

 调用用于访问和控制数据库的程序集。还得确保你真的安装了这个程序集

using System.Data.SqlClient;

安装好如下才对

填写连接参数字符串

无账号密码的数据库服务器(windows用户认证)这样写即可

string connStr = "Data Source=LAPTOP-82MUPKTO;Initial Catalog=CSDN予我心安A3的数据库;Integrated Security=True";//LAPTOP-82MUPKTO      连接的数据库服务器名
//CSDN予我心安A3的数据库   连接的数据库名

有账号密码登录的数据库服务器(sqlserver身份认证)这样写

 string connStr = "Data Source=服务器名;Initial Catalog=数据库名;User ID = 账号;Password=密码";

将连接参数字符串传入数据库链接类,生成链接对象conn

SqlConnection conn = new SqlConnection(connStr);
//SqlConnection 变量名 = new SqlConnection(参数字符串或存储了参数字符串的变量);

进行链接的测试,运行不报错即链接成功

//测试数据
conn.Open();
if (conn.State == ConnectionState.Open)
{MessageBox.Show("数据库连接成功!");//winform中可以用Console.WriteLine("连接成功");//控制台用
}
conn.Close();//关闭数据库链接,用完就关,别挂着

必要准备已经OK了

下面来讲sql语句的编写和执行。

SQL语句编写加执行

编写

我们定义一个string类型的sql变量来存储我们的sql语句,sql语句只需用原本的语法即可,无需做变化。

sqlserver中创建数据表一般是这么写的

这里把他转成一行的,不用管缩进 。

string sql = "create table csdn予我心安的数据表1(name varchar(8) not null)";

有人会问,我的sql语句内容要持续变化,但格式基本不变咋办。总不能另写一条吧。其实没那么折腾,用C#的String.Format()生成sql语句字符串就好了.

C#中string.format用法 C#中string.format用法详解(IT技术)

比如说我要创建的数据表名要替换,我们在表名这加个占位符就OK

string tablename="csdn予我心安的数据表1";//我是表名
string sql = String.Format("create table {0}(name varchar(8) not null)", tablename);
//tablename的内容会替换掉字符串中的{0},所以sql的内容会随着tablename变换而改变

执行

创建执行器

sql语句我们已经写好了,接下了就要执行了

我们调用SqlCommand类生成一个sql语句执行器cmd,传入sql语句和链接变量

SqlCommand cmd = new SqlCommand(sql, conn);
//格式:    SqlCommand 自定义执行器变量名= new SqlCommand(sql字符串变量, 链接变量);

执行器我们创建好了,接下来要选择执行方法,不同的执行方法有不同的返回值。

特别提醒:使用前记得打开链接

conn.Open();

ExecuteNonQuery()方式执行

cmd.ExecuteNonQuery();

ExecuteScalar()方式执行

cmd.ExecuteScalar();

二者区别

ExecuteReader()方式执行

cmd.ExecuteReader();

这个执行方式的作用我会在下面的实例中详细讲解

特别提醒:执行完请关闭连接

 conn.Close();

实例:

1-创建一张数据表

为小明创建一张个人成绩表

要用到sql语句中创建数据表的指令

create table 表名
(列名 数据类型 是否允许为空(null||not null),列名2 数据类型 是否允许为空(null||not null),列名3 数据类型 是否允许为空(null||not null),……列名n 数据类型  是否允许为空(null||not null)
)

C#代码

    using System.Data.SqlClient;//头别忘了,如果加了头还显示未调用,请检查Nuget包public static void addtable(string tablename){//测试连接数据库string connStr = "Data Source=LAPTOP-82MUPKTO;Initial Catalog=CSDN予我心安A3的数据库;Integrated Security=True";SqlConnection conn = new SqlConnection(connStr);//打开数据库conn.Open();//编写sql语句,语法即sql语法string sql = String.Format("create table {0}(课程名 varchar(11) not null,成绩  tinyint     not null)", tablename);SqlCommand cmd = new SqlCommand(sql, conn);//贴心,异常处理都安排上了try{cmd.ExecuteNonQuery();Console.WriteLine("数据表创建成功");}catch (SqlException ae){Console.WriteLine("数据表创建失败");Console.WriteLine(ae.Message);}finally{conn.Close();//对数据库操作完成后,需要关闭数据库,释放内存}}addtable("考试成绩表")

芜湖起飞 

2-向表中插入数据

小明的计算机科学考试考了100分,帮他录进去

要用到sql中的插入数据指令

insert into 表名
values
('数据1','数据2','数据3')//第一行数据,表结构有几列就几个呗,允许为空的地方可以就打''
('数据1','数据2','数据3')//第二行数据,表结构有几列就几个呗,允许为空的地方可以就打''
    public static void adddata(string classname,int grade){//测试连接数据库string connStr = "Data Source=LAPTOP-82MUPKTO;Initial Catalog=CSDN予我心安A3的数据库;Integrated Security=True";SqlConnection conn = new SqlConnection(connStr);//打开数据库conn.Open();//编写sql语句,语法即sql语法string sql = String.Format("insert into 考试成绩表 values('{0}','{1}')",classname,grade);SqlCommand cmd = new SqlCommand(sql, conn);try{cmd.ExecuteNonQuery();Console.WriteLine("成绩录入成功");}catch (SqlException ae){Console.WriteLine("成绩录入失败");Console.WriteLine(ae.Message);}finally{conn.Close();//对数据库操作完成后,需要关闭数据库,释放内存}}data_Control.adddata("计算机科学",100);

3-修改表中数据

我去,小明考试作弊被发现,成绩0分,帮他改过来

update 表名
set 列名1='值',列名2='值' where 筛选条件
    public static void changedata(string classname,int new_grade){//测试连接数据库string connStr = "Data Source=LAPTOP-82MUPKTO;Initial Catalog=CSDN予我心安A3的数据库;Integrated Security=True";SqlConnection conn = new SqlConnection(connStr);//打开数据库conn.Open();//编写sql语句,语法即sql语法string sql = String.Format("update 考试成绩表 set 成绩='{0}' where 课程名='{1}'", new_grade,classname);SqlCommand cmd = new SqlCommand(sql, conn);try{cmd.ExecuteNonQuery();Console.WriteLine("成绩修改成功");}catch (SqlException ae){Console.WriteLine("成绩修改失败");Console.WriteLine(ae.Message);}finally{conn.Close();//对数据库操作完成后,需要关闭数据库,释放内存}}changedata("计算机科学",0);

4-删除表中数据

小明害怕被老爸竹笋炒肉丝,给我1包辣条贿赂我删掉这条记录,我肯定不会为了一包辣条就帮他

,但他拿了2包就是另一回事了。

delete from 表名 where 筛选条件
    public static void delete_data(string classname){//测试连接数据库string connStr = "Data Source=LAPTOP-82MUPKTO;Initial Catalog=CSDN予我心安A3的数据库;Integrated Security=True";SqlConnection conn = new SqlConnection(connStr);//打开数据库conn.Open();//编写sql语句,语法即sql语法string sql = String.Format("delete from 考试成绩表 where 课程名='{0}'", classname);SqlCommand cmd = new SqlCommand(sql, conn);try{cmd.ExecuteNonQuery();Console.WriteLine("成绩删除成功");}catch (SqlException ae){Console.WriteLine("成绩删除失败");Console.WriteLine(ae.Message);}finally{conn.Close();//对数据库操作完成后,需要关闭数据库,释放内存}}delete_data("计算机科学");

小明开心的回家了,他一走我又把成绩写回去了……

5-读取表中数据

学校要把小明的成绩单打印出来。

ExecuteReader()的用法来了啊,谢谢你看到这里。

用法就在下面的代码中啦

select * from 考试成绩表
    public static void get_data(){//测试连接数据库string connStr = "Data Source=LAPTOP-82MUPKTO;Initial Catalog=CSDN予我心安A3的数据库;Integrated Security=True";SqlConnection conn = new SqlConnection(connStr);//打开数据库conn.Open();//编写sql语句,语法即sql语法string sql = String.Format("select * from 考试成绩表");SqlCommand cmd = new SqlCommand(sql, conn);SqlDataReader rdr = cmd.ExecuteReader();//定义数据读取器rdr获取传回的数据while (rdr.Read())//每次执行一次Read(),从数据里读取一行数据{string classname=rdr["课程名"].ToString();//根据列名,获得该行里的课程名信息,由于rdr["课程名"]返回的是object类型,所以要进行类型转化,下面成绩一样的原理int grade = Convert.ToInt32(rdr["成绩"]);//根据列名,获得该行里的成绩信息Console.WriteLine("课程名:{0},成绩:{1}",classname,grade);}conn.Close();//读取时要一直保证数据库是打开的}

小明伤心的拿着成绩单走了..........

用C#通过sql语句操作Sqlserver数据库教程相关推荐

  1. 用SQL语句操作Oracle数据库——数据更新

    数据更新 数据库中的数据更新操作有3种:1)向表中添加若干行数据(增):2)删除表中的若干行数据(删):3)修改表中的数据(改).对于这3种操作,SQL语言中有3种相应的语句与之对应.接下来让我们逐一 ...

  2. shell脚本mysql_Shell脚本中执行sql语句操作MySQL数据库的几个方法

    实验如下: [root@idb1 ~]# more /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m mysql> show va ...

  3. 在命令窗口使用sql语句操作Mysql数据库

    目录 一.操作数据库 1.输入下面代码,按回车,接着输入登录数据库的密码 2.查看Mysql中所有数据库: 3.创建数据库: 4.删除数据库: 5.切换到某个数据库: 6.查询当前在那个数据库 二.操 ...

  4. MySQL数据库https接口_第三章 mysql 数据库接口程序以及SQL语句操作

    mysql  数据库接口程序以及SQL语句操作 用于管理数据库: 命令接口自带命令 DDL:数据定义语言(create drop ) DCL: 数据控制语言(grant revoke) DML: 数据 ...

  5. php sqlserver开发实例,Linux_用sql脚本创建sqlserver数据库范例语句,下面是创建一个sqlserver数据库 - phpStudy...

    用sql脚本创建sqlserver数据库范例语句 下面是创建一个sqlserver数据库的代码模板,加上一个创建表的模板.开发的时候可以拷贝过去直接改动一下就可以用了. 希望能帮上忙! 复制代码 代码 ...

  6. django使用mysql原始语句,Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...

  7. django mysql sql语句_Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...

  8. SQL语句操作大全(本文系转载)

    SQL语句操作大全(本文系转载) SQL语句操作大全(本文系转载) --通过知识共享树立个人品牌. 本文分为以下六个部分: 基础部分 提升部分 技巧部分 数据开发-经典部分 SQL Server基本函 ...

  9. python调用pymssql包操作SqlServer数据库

      之前的文章介绍了python抓取网页数据并将数据保存到本地excel文件,后续可以将数据保存到数据库(SqlServer.mysql等)中,本文学习python中操作SqlServer数据库的基本 ...

  10. JAVA中用 SQL语句操作小结

    1.添加记录(INSERT) 使用SQL语句的INSERT命令可以向数据库中插入记录,INSERT命令的基本形式为: INSERT INTO 表名 [(字段名1,字段名2-)] VALUES (值1, ...

最新文章

  1. HDU 2896 病毒侵袭 AC自己主动机题解
  2. matlab实现tophat,[问题] 多尺度tophat的实现问题
  3. 各种排序笔记---基于非比较排序部分
  4. 从“删库跑路”这件事聊聊数据安全那些事
  5. 转载:SQL server2005 里面没有management studio!下载SQL开发版本
  6. Redis之Pipeline(管道)
  7. javascript字符串的方法
  8. 解压zip报错_Get新技能!利用Python自动解压各种压缩文件
  9. 文件磁盘相关函数[22]-文本文件读写-不同数据类型的写入
  10. 简单易学!一步步带你理解机器学习算法——马尔可夫链蒙特卡罗(MCMC)
  11. FlightGear属性树
  12. UDP通讯获取的IP前有ffff的标记,去掉的方法
  13. C#实现简单气泡屏保(一)
  14. 微信公众平台接入token验证失败php,PHP开发公众号token验证失败是什么意思?其中一个原因 筋斗云网络...
  15. 如何用修灯泡解读IT行业
  16. 汇承4.0蓝牙BLE串口助手HC-COM的使用方法及出错的原因和改正方法
  17. 产品沉思录精选:为何知识资本将胜过金融资本
  18. 硕士学位答辩PPT制作技巧
  19. 对于大型公司项目平台选择j2ee的几层认识(二)
  20. c语言图形学三角形平移,MFC怎么对所画几何图形进行旋转、填充、放缩???(急用)【...

热门文章

  1. 一维非齐次热传导方程的紧致差分格式(附Matlab代码)
  2. php测试宽带速度慢,别被运营商骗了! 手把手教你学会测自家网速
  3. u盘稳定测试软件,u盘检测工具最新版
  4. python房屋租赁管理系统设计与实现报告_基于JavaWeb的房屋出租管理系统设计与实现毕业论文+开题报告+项目源码...
  5. 冰点还原精灵如何卸载
  6. 内网神器-Bettercap
  7. 【博弈论】【RQNOJ】取棋子游戏
  8. DHTMLX Grid Crack
  9. ES-Checker
  10. oracle数据库实例删除