c#连接sql数据库并调用

1、导入命名空间
  using System.Data.SqlClient;  //连接SQLServer 数据库专用

2、创建连接
  SqlConnection lo_conn = New SqlConnection("Server=服务器名字或IP;Database=数据库名字;uid=用户名;pwd=密码");

3、打开连接,第2步并没有真正连接数据库
  lo_conn.Open();    //真正与数据库连接

4、向数据库发送SQL命令要使用SqlCommand:
  SqlCommand lo_cmd = new SqlCommand();   //创建命令对象
  lo_cmd.CommandText = "这里是SQL语句";   //写SQL语句
  lo_cmd.Connection = lo_con;             //指定连接对象,即上面创建的

5、处理SQL命令或返回结果集
  lo_cmd.ExecuteNonQuery();  //这个仅仅执行SQL命令,不返回结果集,实用于建表、批量更新等不需要返回结果的操作。
  SqlDataReader lo_reader = lo_cmd.ExecuteReader();//返回结果集

6、以数据集的方式反回结果集
  SqlDataAdapter dbAdapter = new SqlDataAdapter(lo_cmd); //注意与上面的区分开
  DataSet ds = new DataSet(); //创建数据集对象
  dbAdapter.Fill(ds); //用返回的结果集填充数据集,这个数据集可以被能操作数据的控件DataBind,其它的就自己发挥了吧

7、关闭连接
  lo_conn.Close();

上面是转了某位好友的,感觉写的不错,其实基本原理就是这样的,下面上个例子:

    /// <summary>
    /// 数据库操作处理器
    /// </summary>
    public class SQLProcessor
    {
        private SqlConnection conn;
        public SqlConnection Conn
        {
            get
            {
                if (conn == null)
                {
                    conn = ConnUtil.CreateConnection();//此处直接是一个连接串:"Initial Catalog=TOPJOIN;Data Source=130.1.0.15;User ID=sa;[email protected];Connect Timeout=30"
                }
                return conn;
            }
            set
            {
                conn = value;
            }
        }     

        /// <summary>
        /// 执行sql
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public DataSet ExecuteQuery(string sql, SqlParameter[] parameters)
        {
            DataSet ds = new DataSet();
            Conn.Open();
            SqlCommand sc = new SqlCommand(sql, conn);
            sc.Transaction = Conn.BeginTransaction();
            try
            {
                if (!BaseUtil.isArrayEmpty(parameters))
                {
                    sc.Parameters.AddRange(parameters);
                }
                SqlDataAdapter command = new SqlDataAdapter(sc);

                command.Fill(ds);
            }
            catch (Exception e)
            {
                if (sc != null && sc.Transaction != null)
                    sc.Transaction.Rollback();
                if (Conn != null)
                    Conn.Close();
                throw new Exception(e.Message);
            }
            finally
            {
                if (sc != null && sc.Transaction != null)
                    sc.Transaction.Commit();
                if (Conn != null)
                    Conn.Close();
            }
            return ds;
        }

        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="spname"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public DataSet ExecuteStoredProcedure(string spname, SqlParameter[] parameters)
        {
            DataSet ds = new DataSet();
            Conn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.StoredProcedure;//设置cmd的类型为存储过程
            cmd.CommandText = spname;
            cmd.Connection = conn;
            try
            {
                if (!BaseUtil.isArrayEmpty(parameters))
                {
                    cmd.Parameters.AddRange(parameters);
                }
                SqlDataAdapter command = new SqlDataAdapter(cmd);

                command.Fill(ds);
            }
            catch (Exception e)
            {
                if (Conn != null)
                    Conn.Close();
                throw new Exception(e.Message);
            }
            finally
            {
                if (cmd != null && cmd.Transaction != null)
                    cmd.Transaction.Commit();
                if (Conn != null)
                    Conn.Close();
            }
            return ds;
        }

下面是一个调用的例子:

<span style="white-space:pre">	</span>    string sql = " select * from User where code = @Code ";
            List<SqlParameter> lsp = new List<SqlParameter>();
            lsp.Add(new SqlParameter("Code", code));//code为参数值哈
            SQLProcessor sp = new SQLProcessor();
            DataSet ds = sp.ExecuteQuery(sql, lsp.ToArray()) as DataSet;

或者这样用:

<span style="white-space:pre">	</span>    StringBuilder sb = new StringBuilder();
            sb.Append(" select * from User ");
            sb.Append(string.Format(" where code ='{0}' ",new String[]{code}));//code为参数值哈
            SQLProcessor sp = new SQLProcessor();
            DataSet ds = sp.ExecuteQuery(sb.ToString(),null) as DataSet;

(存储过程的调用时一样的哈,这里不举例子了)

好了,取到DataSet了,你就可以随便操作了!

时间: 2024-10-10 06:14:18

c#连接sql数据库并调用的相关文章

C#数据库相关操作:[1]C#连接SQL数据库(转)

对于学生或程序员而言,一般的编程过程中,基本上都会用到数据库,来保存用户登录信息或其他相关数据,本经验不在于教你什么新的知识,只是将一些零碎的数据库知识统一成册,方便人们查阅. Visual Studio是一个很强大的工具,特别是在C#语言运用越来越广的现在. 工具/原料 Visual Studio 2010 SQL Server 2008 1. 创建测试数据库Test 1 1.1 打开SQL Server管理工具 2 1.2 连接数据库服务器 3 1.3 在左侧视图中右键点击“数据库”,选择“

C# 连接SQL数据库

一:C# 连接SQL数据库 Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword; Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword; Server=myServerA

C#连接SQL数据库的七个步骤

C#连接SQL数据库还需要进行验证,Windows验证就是SqlServer服务器使用Windows自带的验证系统.在建立数据库连接时,还需要考虑到地址的有效性. C#连接SQL数据库的七个步骤: 1.建立SqlConnection对象: 2.指定SqlConnection对象的ConnectionString 属性: 3.打开数据库连接: 4.指定SQL语句: 5.建立SqlDataAdapter对象和DataSet对象(myDataAdapter = new SqlDataAdapter(s

openTSP连接sqlServer数据库&amp;jpa调用存储过程

openTSP框架下的模块都是连接mysql数据库,近期青汽有连接sqlServer数据库的需求,在调研后配置了sqlServer数据库,使用jpa调用存储过程,中间也踩了不少坑,总结一下,避免大家再掉进去. 1.首先配置sqlServer的依赖 <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version

关于VS2012连接SQL数据库的操作方法(文字步骤)

首先建立一个 ASP 空 Web应用程序 建好后在项目中点击右键建立一个 Aspnet 文件夹 APP_Data 是用来存放木人数据库文件的 在新建立的文件里 可建立一个数据库 数据库 分两种 一种为本地数据库 *.sdf  是以server ce 驱动的,这个是本地数据库,但不完整. 一种为SQl数据库 *.mdf 是SQLserver数据库,在上传到服务器时,必须重新生成一个空的数据库. 现在我使用mdf 创建 名称简单写为D.mdf,然后服务器资源管理器中就出现一个数据库连接,注意这不是连

C# 用vs2008连接SQL数据库做动态水晶报表

博主是个还在上大学的新手,如果有什么说错的地方请务必帮我指出来,谢谢! 想要完成一个能够动态改变其中数据的水晶报表,可以通过创建一个 数据的中转站来存储和输出数据的方式. 借由这个中转站,我们可以通过为它动态输入数据,然后再将数据导出到水晶报表,来达到得到有动态数据的水晶报表的目的. 仅在vs2008中,很多它自带的应用也可以达到中转站的作用,比如数组,数据集等. 博主最近刚在学SQL所以尝试了用VS连接数据库来做水晶报表. 1.首先,博主在SQL中创建了名为xxs的数据库,然后再在数据库xxs

matlab连接SQL数据库

操作系统:64位win8.1 软件版本:Matlab2013a SQL Sever 2008 R2 建立数据库和相应的表 创建好数据库和其中的表,步骤不做详细介绍 配置ODBC ODBC(Open Database Connectivity)即开放数据库互连是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口). 打开 控制面板—>系统和安全—>管理工具,找到ODBC数据源(64位)双击打开,这是因为我的操作系统是64位的

vs2015如何连接sql数据库

一.点开工具中的连接到数据库 二.复制sql数据库的服务器名到vs中 三.选择连接的数据库名称 四.选择高级属性最下面的一行全部复制 得到 Data Source = DESKTOP - DFOPNE4; Integrated Security = True 五.点开web.config,把复制到字符串的替换到ConnectionString的引号部位中 六.这时就有两种连接方式可以选择了 static string strcon = "server=DESKTOP-DFOPNE4;Integr

Linux 安装Xampp以后,Apache服务器无法启动,以及启动后,连接sql数据库遇到的问题的解决方法

xampp安装以后,搭建服务器的时候,我们会遇到哪些问题呢?1.MySQL Database 可以启动,而Apache Web Server无法启动?应该是80端口被占用,那么如何解决呢?我们可以通过查找80被哪个占用,并关闭这个进程,方法如下: 1 [email protected]:/# netstat -lntp | grep :80 2 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1716/apache2 关闭该服务, 1 [email protected]: