2017-01-17 4 views
0

일주일 전까지 Server.HtmlDecode (string)에 대한 질문이 HtmlDecode입니다. 내 localhost에서 제대로 작동하도록 할 수있었습니다. 나는 살아있는 웹 사이트에 모든 것을 밀어 넣었다. 나는 아직도 내가 전에 가지고 있었던 같은 문제를 얻고있다.  은 여전히 ​​SQL 데이터베이스에 저장됩니다.server.htmldecode localhost에서 작동하지만 라이브 푸시 할 때 작동하지 않습니다. C#

이 텍스트 상자 문자열을 디코딩하고 데이터베이스의 새 테이블에 삽입해야하는 코드입니다. 다시 말하지만, 이것은 디버깅 할 때 예상대로 작동합니다.

private void createInvoiceQueue() 
{ 
    string db = ConfigurationManager.ConnectionStrings["LakeEncroManSys"].ConnectionString; 
    using (SqlConnection conn = new SqlConnection(db)) 
    { 
     using (SqlCommand querycmd = new SqlCommand("Select Count(*) from tblInvprintqueue", conn)) 
     { 
      querycmd.Connection.Open(); 
      int sqlResult = (int)querycmd.ExecuteScalar(); 
      querycmd.Connection.Close(); 
      try 
      { 
       SqlCommand ExecSP = new SqlCommand("spCreateInvoicePrintQueue", conn); 
       ExecSP.CommandType = CommandType.StoredProcedure; 
       ExecSP.Connection.Open(); 
       sdr = ExecSP.ExecuteReader(); 
       while (sdr.Read()) 
       { 
        lblError.Visible = true; 
        lblError.Text = "Invoices are being created."; 
       } 
       ExecSP.Connection.Close(); 
      } 
      catch (System.Exception excep) 
      { 
       MessageBox.Show(excep.Message); 
      } 
      finally 
      { 
       for (int i = 0; i < GridView1.Rows.Count; i++) 
       { 
        GridViewRow row = GridView1.Rows[i]; 
        if (GridView1.Visible) 
        { 
         SqlCommand insertInvoice = new SqlCommand("Insert into tblInvPrintQueue ([InvoiceNumber],[EncID],[EncType],[ParcelID],[AmountDue],[DateInvoice],[DateDue],[NumSlips],[FullName],[Addr1],[Addr2],[Addr3],[Note],[PermitYear]) " + 
          "Values (@InvNum,@EncID,@EncType,@ParcelID,@AmountDue,@DateInv,@DateDue,@NumSlips,@FullName,@Addr1,@Addr2,@Addr3,@Note,@PermitYear)", conn); 
         insertInvoice.Connection.Open(); 
         insertInvoice.Parameters.AddWithValue("@InvNum", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[0].Text); 
         insertInvoice.Parameters.AddWithValue("@EncID", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[1].Text); 
         insertInvoice.Parameters.AddWithValue("@EncType", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[2].Text); 
         insertInvoice.Parameters.AddWithValue("@ParcelID", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[3].Text); 
         insertInvoice.Parameters.AddWithValue("@AmountDue", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[4].Text); 
         insertInvoice.Parameters.AddWithValue("@DateInv", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[5].Text); 
         insertInvoice.Parameters.AddWithValue("@DateDue", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[6].Text); 
         insertInvoice.Parameters.AddWithValue("@NumSlips", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[7].Text); 
         insertInvoice.Parameters.AddWithValue("@FullName", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[8].Text); 
         insertInvoice.Parameters.AddWithValue("@Addr1", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[9].Text); 
         insertInvoice.Parameters.AddWithValue("@Addr2", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[10].Text); 
         insertInvoice.Parameters.AddWithValue("@Addr3", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[11].Text); 
         insertInvoice.Parameters.AddWithValue("@Note", SqlDbType.NVarChar).Value = Server.HtmlDecode(row.Cells[12].Text); 
         insertInvoice.Parameters.AddWithValue("@PermitYear", SqlDbType.NVarChar).Value = DateTime.Parse(LeaseYear).Year; 
         insertInvoice.ExecuteNonQuery(); 
         insertInvoice.Connection.Close(); 
        } 
       } 
      } 
     } 
    } 
} 
+0

유효한 HTML 토큰이 아니기 때문에 & nbsp HTMLDecode를 사용하여 다른 것으로 변환되지 않습니다. 후행 세미콜론이 누락되었습니다. 또한 Adhoc 쿼리에서 AddWithValue를 사용하고 있기 때문에이 기사를 살펴볼 수도 있습니다. http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/ –

+0

@SeanLange  이 데이터베이스에 저장됩니다. 나는 내 질문에 세미콜론을 놓쳤다. – kevorski

답변

0

내가 가진 문제를 파악할 수있었습니다. 소스 코드를 여러 번 저장 한 것으로 밝혀졌으며 잘못된 소스 코드를 사용하고있었습니다. 네트워크 드라이브와 IIS로 들어가면 올바른 소스 코드를 찾아 HTML 문자 코드를 저장하지 않는 수정 프로그램을 누를 수있었습니다.