0

我正在制作登录脚本,但无法Convert.ToInt32()为我工作。

错误:错误

'System.Convert.ToInt32(object)' 是一种'方法',但用作'类型'

片段:

    con.Open();
    string mysql; // generate an sql insert query for the database
    mysql = "SELECT * FROM [Users] UserName='" + tbUser.Text + "'";
    OleDbCommand CheckUser = new OleDbCommand(mysql, con);
    int temp = new Convert.ToInt32(CheckUser.ExecuteScalar().ToString());

感谢任何帮助。

4

4 回答 4

6

丢失new关键字:

int temp = Convert.ToInt32(CheckUser.ExecuteScalar().ToString());

您看到警告是因为您正在尝试创建静态方法的实例。通常,您创建非静态类型的实例。

于 2013-05-10T13:25:16.350 回答
0

尝试这个:

Int32 count = (Int32) CheckUser.ExecuteScalar();
于 2013-05-10T13:33:28.817 回答
0

您可以使用Select 1 as 来提高性能:

con.Open();
string mysql; // generate an sql insert query for the database
mysql = "SELECT 1 FROM [Users] UserName='" + tbUser.Text + "'";
OleDbCommand CheckUser = new OleDbCommand(mysql, con);
int temp = Convert.ToInt32(CheckUser.ExecuteScalar());

SqlCommand.ExecuteScalar()返回一个object,所以如果值匹配它将是 1 否则 0。

于 2013-05-10T13:47:23.490 回答
0

更改int temp = new Convert.ToInt32(CheckUser.ExecuteScalar().ToString());int temp = Convert.ToInt32(CheckUser.ExecuteScalar().ToString());

于 2013-05-10T13:25:38.490 回答