VS2013 ADO.NET 连接 SQLEXPRESS

开发环境:VS2013 + SQLEXPRESS


出现问题:网站 Web.config 已经配置了connectionString,但是不知道怎么用代码连接


解决方案:ADO.NET连接数据库的方式有两种:一是直接写出connectionString,一是引用 Web.config 中的connectionString,这里我们使用第二种方式。

首先我们已经在项目的 App_Data 下创建了一个数据库(这里我们用SQL Server Express),名字是Database1.mdf

Web.config中的connectionString如下:

<connectionStrings>
  <add name="db1"
  connectionString="Data Source=.\SQLEXPRESS;
                            AttachDbFilename=|DataDirectory|\Database1.mdf;
                            Integrated Security=True;
                            User Instance=True"
                                providerName="System.Data.SqlClient"/>
</connectionStrings>

然后我们新建一个 WebForm,名字是Home

在form窗体内放一个按钮:

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />

最后我们在 Home.aspx.cs 中实现数据库的连接

Button1_Click方法:

protected void Button1_Click(object sender, EventArgs e)
{
    try
    {
        string connectionString = WebConfigurationManager.ConnectionStrings["db1"].ToString();
        SqlConnection conn = new SqlConnection(connectionString);
        conn.Open();
        SqlCommand cmd = new SqlCommand("select * from Product", conn);
        SqlDataReader reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            for (int i = 0; i < reader.FieldCount; i++)
            {
                Response.Write(reader.GetValue(i).ToString() + " ");
            }
            Response.Write("<br>");
        }
        reader.Close();
        conn.Close();
    }
    catch(Exception ee)
    {
        Response.Write(ee.Message);
    }
}

几点说明:

1、连接字符串:如果使用Web.config中的connectionString需要引入System.Web.Configuration命名空间

using System.Web.Configuration;

2、查询表:上面的Product表是我在数据库中手动建的,可以打开App_Data中对应数据库文件建表


3、读取字段:在不明确字段具体类型的前提下请使用GetValue,然后转化成string


4、异常处理:看到catch里面的Exception了吗,因为我并不知道会发生什么异常;后面输出异常信息可以知道哪个地方有问题

你可能感兴趣的:(C#,ADO.NET)