我想在文本框中显示计数
protected void PresentCalculator()
{
string cur_month = "May";
SqlDataAdapter da = new SqlDataAdapter("SELECT COUNT(EMP_CODE) FROM
Attendance where Month ='" + cur_month + "' and EMP_CODE='" + 2222 + "' ",
con);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
txtPresentDay.Text = Convert.ToString(count);
}
}
答案 0 :(得分:4)
而不是SqlDataAdapter
使用SqlCommand
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand(v=vs.110).aspx
并致电ExecuteScalar
获取价值
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar(v=vs.110).aspx
像这样:
using(var sqlCon = new SqlConnetion())
{
using(var sqlCommand = sqlCon.CreateCommand())
{
sqlCommand.CommandText = "SELECT COUNT(EMP_CODE) FROM Attendance WHERE Month = @curMonth AND EMP_CODE= @empCode";
command.Parameters.Add("@curMonth", SqlDbType.Int).Value = curMonth;
command.Parameters.Add("@empCode", SqlDbType.Int).Value = 2222;
var count = (int)sqlCommand.ExecuteScalar();
txtPresentDay.Text = Convert.ToString(count);
}
}
我对你的数据库和你的要求知之甚少,但这里有一点警告:你只是要求这个月,确保这真的是你想要的。
因此,如果是2017/5/1,2016 / 5 / 1,1997 / 5/1,则会计入出勤率 - 因为月份总是相同但年份会发生变化。