/// <summary>
/// 执行一查询语句,同时返回查询结果数目
/// </summary>
/// <param name="strSQL"></param>
/// <returns>sqlResultCount</returns>
/// public int ReturnSqlResultCount(string strSQL)
{
int sqlResultCount = 0;
OleDbConnection Connection = new OleDbConnection(connStr);
Connection.Open();
try
{
OleDbCommand command = new OleDbCommand(strSQL, Connection);
OleDbDataReader dataReader = command.ExecuteReader ();
while (dataReader.Read())
{
sqlResultCount = sqlResultCount+1;
}
dataReader.Close();
}
catch(Exception ex)
{
sqlResultCount = 0;
throw (ex);
}
finally
{
Connection.Close();
}
return sqlResultCount;
}、、-----------------------------
调用的时候
private void button1_Click(object sender, EventArgs e)
{
DB_Access db = new DB_Access();
int i = db.ReturnSqlResultCount ("select count(*) from inout");
MessageBox.Show(i.ToString());
}我表里有3条记录可是返回的值是 1 为什么呢?
我该怎么得到正确的行数呢?
当然我可以返回一个dataSet 可是这个 OleDbDataReader 怎么实现呢?
/// 执行一查询语句,同时返回查询结果数目
/// </summary>
/// <param name="strSQL"></param>
/// <returns>sqlResultCount</returns>
/// public int ReturnSqlResultCount(string strSQL)
{
int sqlResultCount = 0;
OleDbConnection Connection = new OleDbConnection(connStr);
Connection.Open();
try
{
OleDbCommand command = new OleDbCommand(strSQL, Connection);
OleDbDataReader dataReader = command.ExecuteReader ();
while (dataReader.Read())
{
sqlResultCount = sqlResultCount+1;
}
dataReader.Close();
}
catch(Exception ex)
{
sqlResultCount = 0;
throw (ex);
}
finally
{
Connection.Close();
}
return sqlResultCount;
}、、-----------------------------
调用的时候
private void button1_Click(object sender, EventArgs e)
{
DB_Access db = new DB_Access();
int i = db.ReturnSqlResultCount ("select count(*) from inout");
MessageBox.Show(i.ToString());
}我表里有3条记录可是返回的值是 1 为什么呢?
我该怎么得到正确的行数呢?
当然我可以返回一个dataSet 可是这个 OleDbDataReader 怎么实现呢?
解决方案 »
- 用http post访问webserver,怎么才能获取webserver返回的指定格式的数据?
- Nero的安装卸载是用什么做的啊?
- 关于BHO的小问题
- DataGridViewComboBoxColumn 可以让用户输入并自动匹配的选项的问题
- c# winform 记数器
- 用最小二乘法拟合一元一次直线的C#代码!
- C#中什么时候,用到批处理操作数据库,怎么使用,谢谢!!!
- 新浪api的问题
- c#里windows应用程序如何让datagridview里的查询关键字高亮?
- 各位大虾请帮我看看:OleDbConnection?
- c#_WEB实现文件下载(.xls)
- RegisterStartupScript与RegisterClientScriptBlock的猫腻
int i = command.ExecuteScalar就可以了
这样得到的就是 count(*) 的值
{
int sqlResultCount = 0;
OleDbConnection Connection = new OleDbConnection(connStr);
Connection.Open();
try
{
OleDbCommand command = new OleDbCommand(strSQL, Connection);
sqlResultCount = command.ExecuteScalar();
return sqlResultCount;
}
private void button1_Click(object sender, EventArgs e)
{
DB_Access db = new DB_Access();
int i = db.ReturnSqlResultCount ("select count(*) from inout");
MessageBox.Show(i.ToString());
}
{
DB_Access db = new DB_Access();
int i = db.ReturnSqlResultCount ("select count(*) as coun from inout");
MessageBox.Show(i.ToString());
} if(dataReader.Read())
{
sqlResultCount = (int)reader["coun"];
}
sql代码可以写成 Select Count(*) As 'Cou' from inout
您在 Public int ReturnSqlResultCount(string strSQL) 中应该是写成:
if(dataReader.Read())
{
sqlResultCount = datareader["Cou"].ToString(); //可能是datareader["Cou"].Value.ToString()一下不记得了
}