안녕하세요, 제목과 같은 오류가 발생했습니다. 내가 왜 틀린 지 모르겠다. 나는 아직도 이것에 익숙하지 않다, 나는 이것을 어떻게 해결해야할지 모르겠다. 누구든지 나를 도울 수 있다면, 나는 그것을 주셔서 감사 드리며 가능하면 대체해야 할 코드 몇 개를 제공해주십시오. 고맙습니다.'System.Data.SqlClient.SqlDataReader'형식의 개체를 'System.IConvertible'형식으로 캐스팅 할 수 없습니다.
public DataTable getAllLoanInfoDT()
{
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = conn;
// cmd.CommandType = CommandType.StoredProcedure;
cmd2.CommandText = "SELECT DISTINCT loanUpdateDate FROM LoanPortfolio WHERE (custID LIKE 'OH00002') AND (loanType LIKE 'Personal Loan')";
cmd2.Parameters.AddWithValue("@custID", "OH00002");
cmd2.Parameters.AddWithValue("@loanType", "Personal Loan");
conn.Open();
SqlDataReader myReader = cmd2.ExecuteReader();
DateTime loanUpdateDate = Convert.ToDateTime(myReader);
DateTime currDateTime = DateTime.Now;
int loanToBeAdded = (((currDateTime.Year - loanUpdateDate.Year) * 12) + currDateTime.Month - loanUpdateDate.Month) * 500;
if (loanToBeAdded > 0)
{
String sql = "UPDATE LoanPortfolio SET loanPaid = loanPaid + " + loanToBeAdded.ToString() + ", loanUpdateDate = " + DateTime.Now.ToString();
sql += " WHERE (loanType LIKE 'Personal Loan') AND (custID LIKE 'OH00002')";
//Execute the above query here
}
conn.Close();
using (SqlDataAdapter dAd = new SqlDataAdapter("SELECT * FROM LoanPortfolio where custID like 'OH00002'", conn))
{
DataTable dTable = new DataTable();
dAd.Fill(dTable);
return dTable;
}
}
}
** 경고 ** 코드 일부가 SQL 주입 공격에 취약 할 수 있습니다. –
SQL 주입 공격이란 무엇입니까? – Miguel
@Miguel 당신이 그것을 보여줄 것을 제안합니다. 모를 경우 SQL을 작성하면 안됩니다. – JLRishe