C#怎么连接数据库并使用数据库啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#怎么连接数据库并使用数据库啊?相关的知识,希望对你有一定的参考价值。
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;
using System.Data.SqlClient;
namespace database
public partial class Form1 : Form
//定义什么变量?
public Form1()
InitializeComponent();
private void button2_Click(object sender, EventArgs e)
Application.Exit();
private void button1_Click(object sender, EventArgs e)
//这里是连接数据库并使用数据库的代码怎么写啊?
public class DBHelper
private static SqlConnection connection;
private static SqlCommand command;
private static SqlDataAdapter da;
private static DataSet ds;
private static string connString = "Data Source=服务器名;Initial Catalog=数据库名;Integrated Security=true";//用windows身份登录
//连接属性:用于实例化连接对象并打开连接对象
public static SqlConnection Connection
get
if (connection == null)
connection = new SqlConnection(connString);
if (connection.State==ConnectionState.Broken || connection.State==ConnectionState.Closed)
connection.Open();
return connection;
/// <summary>
/// 通过SQL语句从数据库返回单个值
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <returns>返回值:1、0、-1</returns>
public static int GetScalar(string strSql)
try
command = new SqlCommand(strSql,connection);
connection.Open();
int i = (int)command.ExecuteScalar();
return i;
catch (Exception)
connection.Close();
return -1;
/// <summary>
/// 通过存储过程及参数返回单个值
/// </summary>
/// <param name="storedProcedureName">存储过程名</param>
/// <param name="parameters">参数集合</param>
/// <returns>返回单个值</returns>
public static object GetScalar(string storedProcedureName, params SqlParameter[] parameters)
try
//将存储过程封装在命令对象
command = new SqlCommand(storedProcedureName, Connection);
//指定命令对象执行的类型为存储过程
command.CommandType = CommandType.StoredProcedure;
//将参数添加到命令对象的参数集合中
command.Parameters.AddRange(parameters);
//执行命令
object o = command.ExecuteScalar();
//关闭连接
connection.Close();
//返回对象
return o;
catch (Exception)
connection.Close();
return null;
/// <summary>
/// 通过存储过程及参数查询返回数据集
/// </summary>
/// <param name="storedProcedureName">存储过程名</param>
/// <param name="parameters">参数集合</param>
/// <returns>返回数据集</returns>
public static DataSet GetDataSet(string storedProcedureName, params SqlParameter[] parameters)
//将存储过程封装在命令对象
command = new SqlCommand(storedProcedureName, Connection);
//指定命令执行的类型为存储过程
command.CommandType = CommandType.StoredProcedure;
//将参数添加到命令对象的参数集合中
command.Parameters.AddRange(parameters);
da = new SqlDataAdapter(command);
ds = new DataSet();
da.Fill(ds);
return ds;
/// <summary>
/// 通过存储过程及参数执行对表的增删改操作
/// </summary>
/// <param name="storedProcedureName">存储过程名</param>
/// <param name="parameters">参数集合</param>
/// <returns>返回操作是否成功</returns>
public static bool Execute(string storedProcedureName,params SqlParameter[] parameters)
try
command = new SqlCommand(storedProcedureName, Connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddRange(parameters);
command.ExecuteNonQuery();
connection.Close();
return true;
catch (Exception)
connection.Close();
return false;
参考技术A string connstr = "Data Source=(local); database=数据库名; user id=登录名; password=密码";
string sql = "select * from char_test";//sql语句
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
try
SqlCommand comm = new SqlCommand(sql, conn);
SqlDataReader reader = comm.ExecuteReader();
if (reader.Read())
TextBox2.Text = reader[0].ToString();
catch (Exception ex)
Response.Write(ex.Message);
finally
conn.Close();
参考技术B 先说你要连哪种数据库啊?
连接不同的数据库是不一样的 参考技术C string sql = "select * from char_test";//sql语句
SqlConnection conn = new SqlConnection(connstr);
using(conn)
conn.Open();
try
SqlCommand comm = new SqlCommand(sql, conn);
SqlDataReader reader = comm.ExecuteReader();
if (reader.Read())
TextBox2.Text = reader[0].ToString();
catch (Exception ex)
Response.Write(ex.Message);
C#中IDataReader和DataSet的区别是啥呢?
C#中IDataReader和DataSet有什么区别
具体怎么使用啊?
1.使用DataReader对象,用来逐行从数据源获取数据并处理;
2.使用DataSet对象,用来将数据存到内存中进行处理。 参考技术B DataReader是读记录,
DataSet是临时存放数据库 参考技术C ADO.NET提供以下两个对象,用于检索关系数据并将其存储在内存中:DataSet和DataReader。DataSet提供一个内存中数据的关系表示形式,一整套包括一些表在内的数据(这些表包含数据、对数据进行排序并约束数据),以及表之间的关系。DataReader提供一个来自数据库的快速、仅向前、只读数据流。
当使用DataSet时,经常会利用DataAdapter(也可能是CommandBuilder)与数据源进行交互。当使用DataSet时,也可以利用DataView对DataSet中的数据应用排序和筛选。也可以从DataSet继承,创建强类型DataSet,用于将表、行和列作为强类型对象属性公开。
当设计应用程序时,要考虑应用程序所需功能的等级,以确定使用DataSet或者是DataReader。
要通过应用程序执行以下操作,就要使用DataSet:
r 在结果的多个离散表之间进行导航。
r 操作来自多个数据源(例如,来自多个数据库、一个XML文件和一个电子表格的混合数据)的数据。
r 在各层之间交换数据或使用XML Web服务。与DataReader不同的是,DataSet能传递给远程客户端。
r 重用同样的记录集合,以便通过缓存获得性能改善(例如排序、搜索或筛选数据)。
r 每条记录都需要执行大量处理。对使用DataReader返回的每一行进行扩展处理会延长服务于DataReader的连接的必要时间,这影响了性能。
r 使用XML操作对数据进行操作,例如可扩展样式表语言转换(XSLT转换)或XPath查询。
对于下列情况,要在应用程序中使用DataReader:
r 不需要缓存数据。
r 要处理的结果集太大,内存中放不下。
r 一旦需要以仅向前、只读方式快速访问数据。
注填充DataSet时,DataAdapter使用DataReader。因此,使用DataAdapter取代DataSet提升的性能表现为节省了DataSet占用内存和填充DataSet需要的循环。一般来说,此性能提升只是象征性的,因此,设计决策应以所需功能为基础。
参考资料:http://hi.baidu.com/huangping0524/blog/item/04a5394f8a68d233aec3ab04.html
本回答被提问者采纳以上是关于C#怎么连接数据库并使用数据库啊?的主要内容,如果未能解决你的问题,请参考以下文章
c# winform程序怎么连接到本地sqlserver 数据库啊