在win server 2008 上 winForm 连接sqlserver 2008
各位大侠,我在win server 2008上用winForm 连接sqlserver 2008,总是出现“provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接”错误,我用的连接字符串是“<add name="sqlconnection" connectionString="DataSource=localhost;Database=myDB;uid=uid;pwd=password;" providerName="System.Data.SqlClient" /> ”。
疑问有三: 一是连接字符串是否有问题?二是sqlserver 2008 应如何配置?三是win server 2008 要如何配置?请指教,谢谢!
[最优解释]
我用的vs2010,直接把debug复制到服务器上,字符串放在app.config中,winform和app.config 在一个目录里。是否和没有做安装程序有关?缺少一些运行文件?
[其他解释]
1、连接字符串到网上搜搜就好了。
2、你这个报错应该是没有开启named piped服务,然后还要开启sql Browser。
3、win server的话一般只要把防火墙陪一下就好了。
最重要是第二步,你先检查一下服务开启没有
[其他解释]
您好,服务已经开启,是否还需要重启win server
[其他解释]
不需要,;uid=uid;pwd=password你的账号就是uid?密码就是password?
[其他解释]
只是测试用的。还是不行。我用的是.net 4 服务器上也安装了,可有别的问题没有想到?
[其他解释]
发粪涂墙...这么有空啊.....
[其他解释]
是否与权限有关? sql server 新加的用户可需设置权限?应用程序的权限?
[其他解释]
找了个例子:
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 BookHouseMag
{
public partial class Login : Form
{
public Login()
{
InitializeComponent();
}
int i= 2; //密码连续输入三次错误将关闭登录窗口,i用来记录登录次数
private void btnYes_Click(object sender, EventArgs e)
{
string userNo = txtNo.Text; //用户编号
string password = txtPwd.Text; //用户密码
string levels = cboLevel.Text;
if (userNo == ""
[其他解释]
password == "") //没有输入用户名或者密码给予提示
{
MessageBox.Show("请输入完整的用户名和密码", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
{
string connString = @"Data Source=.\SQLEXPRESS;Initial Catalog=Book;Integrated Security=True";
SqlConnection connection = new SqlConnection(connString); //连接到引入的数据库
connection.Open(); // 打开数据库连接
string sql = String.Format("select count(*) from [User] where workerno='{0}'and password='{1}' and level= '{2}'", userNo, password, levels); //获取
用户名和密码匹配的行的数量的SQL语句
SqlCommand command = new SqlCommand(sql, connection); //创建 Command 对象
int num = (int)command.ExecuteScalar(); //执行查询语句,返回匹配的行数
if (num > 0) //如果有匹配的行,则表明用户名、密码和权限正确
{
MessageBox.Show("欢迎进入图书仓库管理系统!", "登录成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Hide(); //隐藏登录窗体
MainFrm mainForm = new MainFrm();// 创建主窗体对象
if (levels == "普通管理员") //如果是普通管理员登录,怎不能使用员工信息的功能
{
mainForm.levels1(); //调用主函数中自己定义的函数(不能使用员工信息的供能)
}
else //如果是特权管理员
{
mainForm.levels2(); //可以使用员工信息功能,调用自己定义的函数
}
mainForm.transmit(txtNo.Text); //将员工编号放进主窗体,transmit()是主窗体的函数
mainForm.ShowDialog(); // 显示窗体
this.Close(); // 显示窗体执行完毕后,登录窗体关闭
}
else //没有匹配的行,表明输入的用户名、密码或者输入的权限错误不正确
{
if (i == 0) //当i=0时,表明已经三次尝试登录
{
MessageBox.Show("已三次输入错误,登录界面关闭!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
this.Close(); //关闭登录窗体
}
else //输入错误,但是没有到三次
{
MessageBox.Show("您输入的用户名或密码错误或者选择了错误的登录权限,还有" + i + " 次机会!", "登录失败", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
i = i - 1; //将i的值减1
}
}
connection.Close();// 关闭数据库连接
}
}
[其他解释]
晕,我要问你的都打完了,你看看你这些地方是不是都开启了:
1、
2、
3、
[其他解释]