C#找高手帮看看 command.ExecuteScalar() 我怎么查不出数据来?!
来源:百度知道 编辑:UC知道 时间:2024/05/09 05:40:06
private int GetSubjectId(string subjectName)
{
DBHelper db = new DBHelper();
int subjectId = -1;
string sql = string.Format("SELECT SubjectId FROM Subject WHERE SubjectName='{0}'",
subjectName);
try
{
SqlCommand command = new SqlCommand(sql, db.connection);
subjectId = Convert.ToInt32(command.ExecuteScalar());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
finally
{
db.Close();
}
return subjectId;
}
下面是 DBHelper 类用到的部分代码
public class DBHelper
{
public SqlConnection connection;
public Sq
{
DBHelper db = new DBHelper();
int subjectId = -1;
string sql = string.Format("SELECT SubjectId FROM Subject WHERE SubjectName='{0}'",
subjectName);
try
{
SqlCommand command = new SqlCommand(sql, db.connection);
subjectId = Convert.ToInt32(command.ExecuteScalar());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
finally
{
db.Close();
}
return subjectId;
}
下面是 DBHelper 类用到的部分代码
public class DBHelper
{
public SqlConnection connection;
public Sq
很明显,SqlCommand command = new SqlCommand(sql, db.connection); 并没有打开数据库,还有数据库名称也没有
connection = new SqlConnection("Data Source=.;Initial Catalog=MySchool;Integrated Security=True");
public bool GetCon() 改为
public SqlConnection GetCon()
{
try
{
connection = new SqlConnection(.....);
connection.Open();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
return connection;
}
SqlCommand command = new SqlCommand(sql, db.connection);
改为SqlCommand command = new SqlCommand(sql, db.GetCon());
db.Close();改为db.connection.Close();
看看你的db.connetion有没有open
没有的话在上面两句中加上
connection.Open();
写OPEN了,没看见???
GetCon是不是应该返回connection类型啊,不应该是布尔行
三楼的不要混淆视听,返回布尔是可以,但是条件是要调用前执行一次GetCon();