여기에 C# 코드가 있습니다. "행/열에 대한 데이터가 없습니다."라는 메시지가 표시됩니다. 제대로 작동하려면이 코드를 어떻게 향상시킬 수 있습니까?텍스트 입력을 SQL 쿼리와 비교
db = new OleDbConnection();
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + fileName;
db.Open();
string sql = "SELECT * FROM GroupNameNS WHERE GroupName = '" + Groupnametxt.Text.Trim() + "'";
cmd = new OleDbCommand(sql, db);
rdr = cmd.ExecuteReader();
if (Groupnametxt.Text.Trim() == (string)rdr["GroupName"])
{
MessageBox.Show("Group Name taken, please try another name", "Error in Name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
membernumber1.ReadOnly = true;
}
else
{
sql = "INSERT INTO GroupNameNS VALUES ('" + Groupnametxt.Text.Trim() + "')";
membernumber1.ReadOnly = false;
cmd = new OleDbCommand(sql, db);
rdr = cmd.ExecuteReader();
}
"... or something like that"? 도움을 받으려면 정확한 오류를주십시오 ... Excel 스프레드 시트를 쿼리하고 있습니까? –
"그런가요?" 사람들이 오류를 도울 수 있기를 원하면 적어도 정확한 오류 메시지를 문서화하는 시간을 가져주십시오. 또한 구글의 SQL 인젝션 공격에 대한 좋은 생각 일 것입니다. –
자세한 정보를 제공해주십시오. "또는 그런 것"은 문제를 추론하는 데 도움이되지 않습니다. 스택 추적이 있습니까? 위의 코드는 현재 SQL 주입 가능성이 매우 높습니다. 쿼리에 SqlParameters를 사용하는 것을 고려해야합니다. 쿼리가 이미 해당 비교 및 필터링을 수행했기 때문에 Groupnametxt가 DataReader의 내용과 같은지 확인하지 않아도됩니다. – chemicalNova