这个哪里出错了?连不上数据库。。。求高手指点!!
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;
using System.IO;
using System.Configuration;
namespace 超市购物管理系统
{
public partial class 添加管理员 : Form
{
public 添加管理员()
{
InitializeComponent();
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
string username = textBox1.Text.Trim();
string password = textBox2.Text.Trim();
string password1 = textBox3.Text.Trim();
string connectionString = ConfigurationManager.ConnectionStrings["超市购物管理系统.Properties.Settings.Database1ConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(connectionString);
string sql = string.Format("insert into denglu values('" + this.textBox1.Text + "','" + this.textBox2.Text + "')", username, password);
con.Open();
SqlCommand comm = new SqlCommand(sql, con);
int result = comm.ExecuteNonQuery();
if (result > 0)
{
MessageBox.Show("注册成功");
}
else
{
MessageBox.Show("两次密码输入不正确");
}
}
}
}
--------------------编程问答-------------------- string connectionString = ConfigurationManager.ConnectionStrings["超市购物管理系统.Properties.Settings.Database1ConnectionString"].ConnectionString;
改成试试:
string connectionString = 超市购物管理系.Properties.Settings.Database1ConnectionString;
--------------------编程问答-------------------- 既然连不上,你就要反复确认你的connectionString 字符串是不是对的 --------------------编程问答-------------------- 我没看出你的代码有什么地方不对。
你可以编写一个测试类进行调试。
--------------------编程问答-------------------- string connectionString = ConfigurationManager.ConnectionStrings["超市购物管理系统. Properties.Settings.Database1ConnectionString"].ConnectionString;
//数据库连接字符串
string connString = "data source =.;Initial Catalog = 数据库;USER ID = sa;PWD = 密码";
using(SqlConnection connection = new SqlConnection(connString))
{
connection.Open();
MessageBox.Show("数据库连接成功");
connection.Close();
MessageBox.Show("关闭连接");
}
把上面这句的汉字改成英文试试。 --------------------编程问答-------------------- 就是,你可以编写一个测试类进行调试。
--------------------编程问答-------------------- string connectionString = ConfigurationManager.ConnectionStrings["超市购物管理系统. Properties.Settings.Database1ConnectionString"].ConnectionString;
(超市购物管理系统.Properties.Settings.Database1ConnectionString"].看看和confing里面的
<add name="ConnectionString" connectionString="Data Source=.;Initial Catalog=JK_ERP;User ID=sa;Password=191919"
providerName="System.Data.SqlClient"/>
name 的值,是否相同
)
--------------------编程问答-------------------- 你用向导测试 --------------------编程问答-------------------- 重新运行一次 --------------------编程问答--------------------
string sql = string.Format("insert into denglu values('" + this.textBox1.Text + "','" + this.textBox2.Text + "')", username, password);
最好指定要插入的字段
string sql = string.Format("insert into denglu(两个字段) values('" + this.textBox1.Text + "','" + this.textBox2.Text + "')", username, password);
还有,你的string.format语句没有用上,可以去掉 --------------------编程问答--------------------
估计是配置文件有问题
注意配置文件中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="超市购物管理系统.Properties.Settings.Database1ConnectionString" connectionString="Data Source=.\……"/>
</connectionStrings>
</configuration>
看一下 name 是“超市购物管理系统.Properties.Settings.Database1ConnectionString”,
这个名称不用那么长吧,
最好用英文,
在读取的时候必须与 name 值一样,最好自制过来
还有检查连接字符串:connectionString
是否能和数据库连接上,
能出问题的就这两个地方了 --------------------编程问答-------------------- string m_DBConnection = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString.ToString().Trim();
XML
<connectionStrings>
<add name="Conn" connectionString="Server=192.168.0.110;database=EdutechDB;uid=sa;pwd=1234@educationtek.com"/>
</connectionStrings> --------------------编程问答-------------------- connectionString会不会是这个可能出错了吧 --------------------编程问答-------------------- connectionString 估计错误就在这 --------------------编程问答-------------------- 参考 --------------------编程问答-------------------- 将连接字符串输出看看,看看是不是字符串错了。还有就是首先确定你的数据库是不是开启正常。不要是数据库服务根据没开,代码就是没有问题也连不上啊。 --------------------编程问答-------------------- 我问过老师,他说少了这些代码:
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\")
|| dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}
可是这是在主函数里添加的,我的登录界面在添加这个之前可以运行,添加界面就不可以。。很奇怪。。。。
补充:.NET技术 , C#