0

사실 나는이 주제에서 새로운 것이므로 약간의 도움이 필요합니다.C# asp.net 4.0 프로젝트에서 Web.Config의 생성 된 연결 문자열을 사용하는 방법은 무엇입니까?

나는 내가 아는 전부

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

뒤에 내 C# 코드에서이 문장을 넣어 가지고 그것을 사용하는, 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> 

과 알고에 연결 문자열을 추가했습니다.

내 질문은 내가

이전 (비주얼 스튜디오 2010 년에 로그인 contols에 내장 된 ASP.NET의 DB에 내장) 내 aspnetdb.mdf dataabase에 대한 몇 가지 쿼리를 실행하려면 어떻게해야합니까

입니다 내 작업을 수행하기 위해이 작업을 수행했습니다.
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); 
     } 
    } 

답변

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가 올바른 처분을 위해 명령문을 사용하여 래핑됩니다.

+0

죄수 대신에 conn가 있어야합니다 ... 맞습니까? –

+0

cmd.Parameters.AddWithValue ("@ fname", fname.Text); 이 작동하지 않습니다. –

+0

fixed typ. fname.Text는 SQL 문에서 @fname 매개 변수의 값을 설정하는 곳입니다. fname.Text를 응용 프로그램의 소스 값으로 바꿉니다. –

관련 문제