当前位置:编程学习 > C#/ASP.NET >>

这个哪里出错了?连不上数据库。。。求高手指点!!

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 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;
把上面这句的汉字改成英文试试。 --------------------编程问答-------------------- 就是,你可以编写一个测试类进行调试。

--------------------编程问答-------------------- 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语句没有用上,可以去掉 --------------------编程问答--------------------
引用楼主 siturobert 的回复:
string connectionString = ConfigurationManager.ConnectionStrings["超市购物管理系统.Properties.Settings.Database1ConnectionString"].ConnectionString;

估计是配置文件有问题
注意配置文件中:

<?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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,