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

很明显,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();