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

今天是喜悦的一天,终于通过自己的双手把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();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值