VS2010环境下C#如何建立与SQLServer的连接并获取数据

来源:互联网 发布:数据库系统是由数据库 编辑:程序博客网 时间:2024/06/05 07:53

       如何在.net环境下,用C#编程语言建立与SQLServer数据库的连接并且从中获取数据恐怕是刚接触C#的人们遇到的问题了,这个问题其实很简单,但是网络上各种东拼西凑的文章让人眼花缭乱。自己从事软件开发几乎五年了,但是没写过博客,只是一味地在看博客,自己的表达能力不太好,希望我的第一篇博客能帮到用到的人。如果感觉文章写的不好,可以mail给我,我竭尽所能帮到大家吧。anfeng035188@126.com

1.建立连接字符串:

连接字符串最好定义在web.config配置文件当中,这样项目一旦上线或者数据库变更,只要修改一下配置文件就可以了,不管是运维人员还是开发人员都不用修改代码里面的东西了。配置文件中的定义方式如下:

 <add name="MGMTDBSetting" connectionString="server=labqa2-rpt1;database=ManagementReport;uid=sa;pwd=11111111" providerName="System.Data.SqlClient" />

其中,MGMTDBSetting为一个名称,自己也可以随便修改,只是一个名称而已。connectionString里面分别是:服务器名称、数据库名称、用户名、密码。 providerName="System.Data.SqlClient" 照搬即可。

2.建立数据库连接

首先在建类的文件中引入类库;

using System.Data;
using System.Data.SqlClient;

写一个函数,该函数的功能就是从数据库中获取数据


public string GetDataFromDB()

        {
            string dateString = "";
            string setting = "MGMTDBSetting";//名称和配置文件中的名称一致
            var connString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings[setting];//取出的数据就是配置文件中节点MGMTDBSetting的connectionString内容;
            string sqlstr = "select*from A";//该字符串为SQL语句,A为建立的数据表名
            if (connString != null)
            {
                using (SqlConnection conn = new SqlConnection(connString.ConnectionString))
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(sqlstr, conn);
                    SqlDataReader reader = cmd.ExecuteReader();


                    while (reader.Read())
                    {
                                      
                        dateString = reader[0].ToString();
                    }
                    reader.Close();
                    cmd.Dispose();
                    conn.Close();//关闭连接 
                }
            }
            return dateString;
        

        }

写到这里,基本简单的SQL语句模式就OK了。当然大家开始使用的时候会让这个函数越来越复杂,函数可以引入各种参数,返回值也往往有list,object等复杂的数据结构。不过架子有了,对于初学者就有了模板,只要慢慢丰富就可以了。另外我还想补充一个例子,如果数据库里我们用的SP而不是SQL语句呢。


public string GetDataFromDB()

        {
            string dateString = "";
            string setting = "MGMTDBSetting";//名称和配置文件中的名称一致
            var connString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings[setting];//取出的数据就是配置文件中节点MGMTDBSetting的connectionString内容;
            string spname = "";//存储过程的名字
            if (connString != null)
            {
                using (SqlConnection conn = new SqlConnection(connString.ConnectionString))
                {
                     
                       conn.Open();
                       SqlCommand cmd = null;
                   
                        spname = "ABC";//存储过程的名字
                        cmd = new SqlCommand(spname, conn);


                        cmd.CommandType = CommandType.StoredProcedure;


                        cmd.Parameters.Add("@Role", SqlDbType.VarChar).Value = “Guest”;     //SP的参数,无需理解含义
                        cmd.Parameters.Add("@StartDate", SqlDbType.DateTime).Value = “2016-03-03”

                      

                        SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                                      
                        dateString = reader[0].ToString();
                    }
                    reader.Close();
                    cmd.Dispose();
                    conn.Close();//关闭连接 
                }
            }
            return dateString;
        

        }





0 0