虚心请教C#sql连接,未将对象引用设置到对象的实例 刚学代码有点乱,别见怪

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace ConsoleApplication1
{
class DBOperation
{
private static string conn = "Data Source=.;Initial Catalog=qq;Integrated Security=True";
//User ID=sa;Password=123456";如果Password为空,可以不写
public static SqlConnection con = new SqlConnection(conn);
string strMsg="";
#region 异常处理
public void Conn()
{
try
{
//打开数据库
con.Open();
CheckUserInFo();
Console.WriteLine(
"打开成功");
Console.WriteLine(strMsg);
}
catch (Exception ex)
{
Console.WriteLine(
"异常:{0}", ex.Message);
}
finally
{
//关闭数据
con.Close();
Console.WriteLine(
"关闭成功");
Console.ReadLine();
}
}
#endregion

#region
public string CheckUserInFo()
{

Console.Write(
"请输入QQ号:");
int ID = int.Parse(Console.ReadLine());
Console.Write(
"请输入密码:");
string pwd = Console.ReadLine();
string sql =string.Format("select QQid,password from qquser where qqid={0} and password={1}",ID,pwd);
SqlCommand com
= new SqlCommand(sql,con);
int i = (int)com.ExecuteScalar();
if (i != 1)
{
strMsg
= "输入错误";
return strMsg;
}
else
{
strMsg
= "登陆成功";
return strMsg;
}
}

#endregion
}
}
牧羊人nacy
浏览 674回答 7
7回答

倚天杖

确实很乱啊,你调试下到哪报错了。

Helenr

int i = (int)com.ExecuteScalar(); 单步调试,这句执行完就报错了

慕妹3242003

楼上的说的对,应该供ExecuteNonQuery()方法,返回实体类类型

holdtom

password是sql的关键字来的,你用[]把它给括起来,然后的话,你的查询条件是两个字符窜,在sql里面的话要用单引号筐住

LEATH

你多对这个方法不熟悉 ExecuteScalar(),他的意思是返回第一行第一列的值,所以你在查询的时候count(0) 查看该登录名和密码是否在数据库中存在...
打开App,查看更多内容
随时随地看视频慕课网APP