一个C# ADO.NET连接SQL Server数据库的实例
2023-03-31 11:11:00 时间
本文是一个利用C# ADO.NET连接SQL Server数据库的程序实例,该实例比较简单,代码如下:
- usingSystem;
- usingSystem.Collections.Generic;
- usingSystem.Linq;
- usingSystem.Text;
- usingSystem.Data;
- usingSystem.Data.SqlClient;
- namespaceDataAccess
- {
- ///<summary>
- ///操作数据库公共类
- ///</summary>
- classSqlDataAccess:IDisposable
- {
- ///<summary>
- ///数据库连接字符串
- ///</summary>
- privatereadonlystringSqlConnectionString="连接字符串;";
- privateSqlConnectionsqlConnection;
- publicSqlDataAccess()
- {
- sqlConnection=newSqlConnection(SqlConnectionString);
- }
执行SQL语句,并返回受影响的行数,具体代码如下:
- ///<summary>
- ///执行SQL语句,并返回数据库受影响的行数
- ///</summary>
- ///<paramnameparamname="sql">SQL语句</param>
- ///<returns></returns>
- publicintExcuteNonQuery(stringsql)
- {
- SqlCommandcmd=newSqlCommand(sql,sqlConnection);
- if(sqlConnection.State==ConnectionState.Closed)
- {
- sqlConnection.Open();
- }
- intresult=cmd.ExecuteNonQuery();
- sqlConnection.Close();
- returnresult;
- }
- //如果更新的数据有特殊字符的用上面那个ExcuteNonQuery()就不行了,需要用到SqlCommand的一个参数SqlParameter。
- publicintExcuteNonQuery(stringsql,SqlParameter[]parameters)
- {
- SqlCommandcmd=newSqlCommand(sql,sqlConnection);
- cmd.Parameters.AddRange(parameters);
- if(sqlConnection.State==ConnectionState.Closed)
- {
- sqlConnection.Open();
- }
- intcount=cmd.ExecuteNonQuery();
- sqlConnection.Close();
- returncount;
- }
返回首行首列的代码如下:
- ///<summary>
- ///返回首行首列
- ///</summary>
- ///<paramnameparamname="sql"></param>
- ///<returns></returns>
- publicobjectExecuteScalar(stringsql)
- {
- SqlCommandcmd=newSqlCommand(sql,sqlConnection);
- if(sqlConnection.State==ConnectionState.Closed)
- {
- sqlConnection.Open();
- }
- objectresult=cmd.ExecuteScalar();
- sqlConnection.Close();
- returnresult;
- }
获取一个DataSet的代码如下:
- ///<summary>
- ///获取一个DataSet
- ///</summary>
- ///<paramnameparamname="sql"></param>
- ///<returns></returns>
- publicDataSetGetDataSet(stringsql)
- {
- SqlDataAdapteradapter=newSqlDataAdapter(sql,sqlConnection);
- DataSetds=newDataSet();
- adapter.Fill(ds);
- returnds;
- }
- }
- }
示例:用上面的数据库连接类,新增一个商品,包括商品名称和单价,代码如下:
- stringinsertSql=@"INSERTINTOPRODUCTINFO
- VALUES
- (
- @PRODUCTNAME,
- @PRODUCTPRICE,
- );
- SqlParameter[]parameters=newSqlParameter[]
- {
- newSqlParameter("@PRODUCTNAME",商品名称){SqlDbTypeSqlDbType=SqlDbType.NVarChar},
- newSqlParameter("@PRODUCTPRICE",商品单价){SqlDbTypeSqlDbType=SqlDbType.Money}
- }
- DataAccessdataAccess=newDataAccess();
- intresult=dataAccess.ExcuteNonQuery(insertSql,parameters);
- if(result>0)
- {
- MessageBox.Show("新增成功");
- }
- else
- {
- MessageBox.Show("新增失败");
- }
本实例就介绍到这里,如果想了解更多SQL Server数据库的知识,这里的文章很值得一看:http://database.51cto.com/sqlserver/,千万不要错过哦!
【编辑推荐】
相关文章
- 世界上最快的内存数据库横空出世,比 Redis 快 25 倍,Star 数飙升,杀疯了!
- springboot~Screw生成数据库文档
- Spring(四)-声明式事务
- ES + Redis + MySQL,这个高可用架构设计太顶了!
- kafka详解(一)--kafka是什么及怎么用
- 一个注解搞定接口数据脱敏,太强了!
- redis简述
- ElasticSearch7.6入门
- restcontroller和controller区别
- api进阶Day3使用文件流对文件进行复制、使用块读写一组字节,使用byte数组提高读写的效率、返回当前时间。
- Mybatis框架--优化过程
- spring boot集成Elasticsearch-SpringBoot(25)
- 聊聊客户档案模型的设计与管理
- 国产时序数据库IotDB安装、与SpringBoot集成
- 一文说透kafka底层架构
- Java NIO全面详解(看这篇就够了)
- 使用多线程及线程池批量拷贝数据到MongoDB
- 用redis和jpa实现缓存文章和点击量-SpringBoot(23)
- JPA 入门实战(1)--简介
- 《Effective Java》第16条:要在仅有类中使用访问方法而非公有域