2013-10-07 4 views
0

asp.net을 C#과 함께 사용하고 있으며이 코드 줄에 오류가 있습니다.C#에서 sql 명령을 실행하는 중 오류가 발생했습니다.

protected void btnsubmit_Click(object sender, EventArgs e) 
{ 
    string type = "c"; 
    string FID = Session["FID"].ToString(); 
    SqlConnection cn = new SqlConnection(); 
    SqlCommand cmd = new SqlCommand(); 
    //int str_diff = Convert.ToInt32(ConfigurationManager.AppSettings["Difference"]); 
    cn.ConnectionString = @"Data Source=BOPSERVER;Initial Catalog=Project;Integrated Security=True"; 
    cn.Open(); 
    cmd.CommandText = "update TrackingFaculty_det SET [email protected] WHERE ([email protected]) and DATEDIFF(d,TrackingFaculty_det.LastUpdateDate,GETDATE())>60"; 
    cmd.Parameters.Add("@FID",SqlDbType.VarChar,10); 
    cmd.Parameters["@FID"].Value = FID; 
    cmd.Parameters.Add("@Type", SqlDbType.VarChar, 1); 
    cmd.Parameters["@Type"].Value = type; 
    cmd.ExecuteNonQuery(); 
    cn.Close(); 

    Response.Redirect("~/Faculty/Personaldet.aspx"); 
} 

Error!!!

+0

당신이 점점 어느 라인 – Rex

+0

에 내가 –

+0

당신이 SQL 서버에서 직접 업데이트를 시도 자체를 이미지의 오류를 표시 부착 어떤 오류? – Nisha

답변

4

당신은 명령 당신은 SqlCommandSqlConnection를 할당해야

cmd.Connection = cn; 
0
SqlCommand cmd = new SqlCommand("update TrackingFaculty_det SET [email protected] WHERE ([email protected]) and DATEDIFF(d,TrackingFaculty_det.LastUpdateDate,GETDATE())>60", cn); 
    cmd.Parameters.Add("@FID",SqlDbType.VarChar,10); 
    cmd.Parameters["@FID"].Value = FID; 
    cmd.Parameters.Add("@Type", SqlDbType.VarChar, 1); 
    cmd.Parameters["@Type"].Value = type; 
    cmd.ExecuteNonQuery();      
+0

예 @Nisha 답변을 얻었습니다 –

+0

좋습니다. 도움을 청하기 전에 혼자서 해결책을 찾아보십시오. 그것은 당신이 더 많은 것을 배우도록 도울 것입니다. – Nisha

+0

나는 해결책을 너무 급히 만들어서 도움을 요청했다. –

2

에 대한 연결을 설정하지 않았습니다. 추가 제안으로 사용 블록에서 연결을 랩핑하여 예외의 경우 올바르게 처리되었는지 확인합니다.

using (SqlConnection cn = new SqlConnection(@"Data Source=BOPSERVER;Initial Catalog=Project;Integrated Security=True") 
{ 
    cn.Open(); 
    SqlCommand cmd = new SqlCommand("update TrackingFaculty_det SET [email protected] WHERE ([email protected]) and DATEDIFF(d,TrackingFaculty_det.LastUpdateDate,GETDATE())>60", cn); 
    cmd.Parameters.Add("@FID",SqlDbType.VarChar,10); 
    cmd.Parameters["@FID"].Value = FID; 
    cmd.Parameters.Add("@Type", SqlDbType.VarChar, 1); 
    cmd.Parameters["@Type"].Value = type; 
    cmd.ExecuteNonQuery(); 
} 
+0

그리고 포장하는 경우 - 적절한 사용을 보장하기 위해'using() {...} '블록에'SqlCommand'를 ** 포장해야합니다 ** –

관련 문제