如何在我的C#asp.net 4.0项目中使用Web.Config创建的连接字符串?

时间:2011-09-25 08:43:36

标签: asp.net sql-server c#-4.0 database-connection connection-string

实际上我是这个主题的新手,所以需要一些帮助。

我在Web.Config

中添加了连接字符串
    <connectionStrings>
    <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
    </connectionStrings>

并且知道,要使用它,我必须将此语句放在我的C#代码后面

string connStr = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;

这就是我所知道的。

我的问题是

如果我想对aspnetdb.mdf数据库执行某些查询(在Visual Studio 2010中内置于登录控件中构建的ASP.NET内置数据库),我该怎么办?

早些时候,我这样做是为了完成我的任务 1)Web.Config中没有连接字符串。和
2)代码隐藏中的硬代码

SqlConnection con = new SqlConnection("data source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true");
SqlCommand cmd = new SqlCommand();

protected void btnnameedit_Click(object sender, EventArgs e)
    {
        try
        {
            con.Open();
            cmd.CommandText = "update tamhankarnikhil set fname = '" + fname.Text + "'";
            cmd.Connection = con;
            cmd.ExecuteNonQuery();
            con.Close();
            fname.Text = "";
        }

        catch (Exception a)
        {
              Response.Write(a.Message);
        }
    }

1 个答案:

答案 0 :(得分:4)

以下是您可以做的事情:

protected void btnnameedit_Click(object sender, EventArgs e)
{
    try
    {
        string connStr = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;
        using (var conn = new SqlConnection(connStr))
        using (var cmd = conn.CreateCommand())
        {
            conn.Open();
            cmd.CommandText = "UPDATE tamhankarnikhil SET fname = @fname";
            cmd.Parameters.AddWithValue("@fname", fname.Text); 
            cmd.ExecuteNonQuery();
            fname.Text = "";
        }
    }
    catch (Exception a)
    {
        Response.Write(a.Message);
    }
}

您将注意到参数化查询的使用,以避免由于您在构造SQL查询时使用的字符串连接而导致代码易受攻击的SQL注入。

您还会注意到SqlConnection和SqlCommand包含在using语句中,以确保即使在发生异常时也能正确处理它们。