SqlDataReader
에 문제가 있습니다.C#의 SqlDataReader
여기 내 코드가 있습니다. 문제는 내가 그것을 디버깅 할 때 그것이 dr.Read()
이 거짓에 의해 반환되는 값을 의미
while(dr.read())
보다 더하지 않는 것입니다. 나는 틀린 것을 모른다. 당신이 Card_reg
표는 데이터베이스에 정의하지만,이 표는 어떤 값을 포함하지 않는이 같은
if (CS_time_date[i].Substring(0, 2) == "CS")
{
string cardserial = CS_time_date[i].Substring(4, 5);
try
{
using (SqlConnection con = new SqlConnection(WindowsAppEmp.Properties.Settings.Default.Database1ConnectionString))
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from Card_reg ", con);
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
if ((dr["Cardserial"].ToString() == cardserial))
{
flag = 1;
string EmpID = dr["Id"].ToString();
string F_Name = dr["fname"].ToString();
string L_Name = dr["lname"].ToString();
// Insert_EmpReport(EmpID, F_Name, L_Name, cardserial, CS_time_date,con);
string strsql1 = "Insert into Emp_Report (EmpId,CS,fname,lname,CheckIn,CheckOut,Date,Status) values (@EmpID,@Cs,@fname,@lname,@CheckIn,@CheckOut,@Date,@Status)";
SqlCommand report_cmd = new SqlCommand(strsql1, con);
report_cmd.Parameters.AddWithValue("@EmpID", EmpID);
report_cmd.Parameters.AddWithValue("@Cs", cardserial);
report_cmd.Parameters.AddWithValue("@fname", F_Name);
report_cmd.Parameters.AddWithValue("@lname", L_Name);
if (CS_time_date[i].Substring(9, 10) == "56")
if (CS_time_date[i + 2] == DateTime.Now.ToString("dd/mm/yyyy"))
{
report_cmd.Parameters.AddWithValue("@CheckIn", CS_time_date[i + 1]);
report_cmd.Parameters.AddWithValue("@Status", "Present");
}
else
report_cmd.Parameters.AddWithValue("@Status", "Absent");
else
report_cmd.Parameters.AddWithValue("@CheckOut", CS_time_date[i + 1]);
report_cmd.Parameters.AddWithValue("@Date", CS_time_date[i + 2]);
}
else
flag = 0;
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
} while (reader.Peek() != -1);
reader.Close();
'Card_reg' 테이블에 레코드가 있습니까? –
정말 필요한 것보다 훨씬 많은 코드를 제공했습니다. 문제를 설명하는 데 필요한 비트로 잘라주십시오. 예를 들어'while' 루프 내에서 진단 로깅 이상의 것이 필요하지 않습니다 ... http://tinyurl.com/so-hints 및 http://tinyurl.com/so-list –
예를 읽으십시오. 내 데이터베이스 파일에 Card_reg 테이블이 있습니다 –