C#窗体应用程序编程,与数据库连接

“System.Data.SqlClient.SqlException”类型的未经处理的异常出现在 System.Data.dll 中。
其他信息: 用户 'sa' 登录失败。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 图书销售管理系统
{
public partial class login : Form
{
public login()
{
InitializeComponent();
}
public class DBCon
{
public DBCon()
{
}
public static SqlConnection createCon()
{
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection("server=(local);database=book;uid=sa;pwd=sa;");
return con;
}
}
private void btnreset_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void btnlogin_Click_1(object sender, EventArgs e)
{
if (txtuser.Text == "")
{
MessageBox.Show("用户名不能为空");
}
else
{
if (txtpwd.Text == "")
{
MessageBox.Show("密码不能为空");
}
else
{
SqlConnection con = DBCon.createCon();
con.Open();
SqlCommand cmd = new SqlCommand("select count(*)from dl where 用户名='" + txtuser.Text + "'and 密码='" + txtpwd.Text + "'", con);
int i = Convert.ToInt32(cmd.ExecuteScalar());
if (i > 0)
{
mainface main = new mainface();
main.Show();
}
else
{
MessageBox.Show("用户名或者密码错误!");
}
}
}
}
}

数据库设置问题,首先数据库是Express版本还是其他高级版本(Express精简版一般要这样设置IP:server={IP}\SQLEXPRESS);再就是确认SQLServer的的安全认证方式是否是混合验证方式(Windows身份登录后,根节点右键属性后可以找到);再就是看看是否允许TCP/IP登录,其管理配置工具中可设置。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-17
试试connectionstring改成server=.\SQLEXPRESS;database=book;uid=sa;pwd=sa;追问

错误 CS1009: 无法识别的转义序列

第2个回答  2014-01-17
不要用sa,改成其他账号名追问

怎么修改啊,我一般用windows账号连的

追答

在安全性那改,你要不会改也可以用集成验证,原来的改成server=(local);Integrated Security=True;database=book;

追问

我使用的一直是windows登录方式 VS2010链接数据库时也是 那这儿这个语句怎么写server=(local);database=book;uid=sa;pwd=sa;" 这个是SQL登录方式么?

追答

这个是SQL登录方式,但用户名用默认的sa可能会出错,你要改成别的用户名,或者用集成验证,语句改成server=(local);Integrated Security=True;database=book; 不用用户名跟密码了,直接用windows账号连

第3个回答  2014-01-17
database=book;uid=sa;pwd=sa 你确定你数据库的密码是sa?追问

我在安全性里边改了 用户名密码都是sa啊

追答

你打个断点看看吧,是不是服务没开啊什么的

追问

我使用的一直是windows登录方式 VS2010链接数据库时也是 那这儿这个语句怎么写server=(local);database=book;uid=sa;pwd=sa;" 这个是SQL登录方式么?

追答

登陆方式有2中,一种是windows登陆,就是不用输入用户名和密码,但是你需要在连接里面写Integrated Security=True,还有一种需要用户名密码,就是你现在这种,这种也叫sql登陆

本回答被提问者采纳
相似回答