您的位置:首页 > 数据库

数据库连接成功出现的问题及解决

2014-04-23 18:01 218 查看
今天是喜悦的一天,终于通过自己的双手把SQL2008与C#直接的数据库连接成功了

在这其间碰到了很多问题,开始时数据库中建表是没有建好,出现了not null的问题,昨天得到了解决。

错误一:

今天就SQL语法错误,select * from Clients这样才对,而开始输成了select * from Rent-a-car,把表名写成了库名,这是个十分低级的错误。

错误二:

还有一个重要错误,就是网上看的菜鸟老鸟都会犯“未将对象引用设置到对象的实例”,在网上找了会,看到是对象NULL,我就通过下面这段代码来查找哪一个对象为空:
代码:if(dtClients == null)

{

MessageBox.Show("dtClients为空");

}

发现时dtClient为NULL,原来是代码: DataTable dtClients = ds1.Tables[“Clients“]出了问题,通过修改 DataTable dtClients = ds1.Tables[0];就成功了,是dtClient实例化了,解决了这个问题。
错误三:
可是到下面又犯了一个很常见的问题,就是textbox中的数据和数据库中的数据比较会出问题。
代码:if (tbUsername.Text.ToString() == dr[1].ToString())这样比较不出来。
然后又在网上查找发现可以采用这样一种方法,代码:dr[1].ToString().Trim().Equals(this.tbUsername.Text.Trim())。
这样就解决了问题,成功连接了数据库,并且与数据进行了交互式操作。

以下附代码:
SqlConnection conn = new SqlConnection("Data Source=*;Initial Catalog=Rent-a-Car;User ID=sa;Password = a;");
conn.Open();

SqlCommand comm1 = new SqlCommand("select * from Clients", conn);

SqlDataAdapter adapter1 = new SqlDataAdapter();

adapter1.SelectCommand=comm1;

if (adapter1 == null)

{

MessageBox.Show("adapter1为空");

}

DataSet ds1 = new DataSet();

adapter1.Fill(ds1);

if (ds1== null)

{

MessageBox.Show("ds1为空");

}

DataTable dtClients = ds1.Tables[0];

if (dtClients == null)

{

MessageBox.Show("dtClients为空");

}

if (rbClient.Checked == true)

{

bool flag2 = false;

foreach (DataRow dr in dtClients.Rows)

{

if (dr[1].ToString().Trim().Equals(this.tbUsername.Text.Trim()))

{

if (dr[2].ToString().Trim().Equals(this.tbPassword.Text.Trim()))

{

groupBox1.Visible = false;

tabControl1.Visible = true;

lLogin_info.Text = "亲爱的客户,您已登录成功";

flag2 = true;

break;

}

}

}

if (flag2 == false)

{

lLogin_info.Text = "抱歉!您的用户名或者密码出错。";

}

}

conn.Close();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐