我试图创建注册表单,但是当我运行项目时,出现此错误消息
抛出异常:System.Data.dll中的'System.Data.SqlClient.SqlException'
我的代码:
using System;
using System.Data;
using System.Data.SqlClient;
namespace Registration{
private void Register_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=SHAB
SQLEXPRESS;InitialCatalog=Phonebook;Integrated Security=True");
SqlCommand cmd = new SqlCommand(@"INSERT INTO [dbo].[registration]([username[fullname],[Password]) VALUES('" + username.Text+"', '"+fullname.Text+"', '"+password.Text+"')");
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Congradulation You have been Registered");
}
错误出现在con.open();
行上。
抛出异常:System.Data.dll中的'System.Data.SqlClient.SqlException'
其他信息:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:命名管道
答案 0 :(得分:1)
您缺少[username]
和[fullname]
之间的逗号。尝试:
INSERT INTO ... ([username], [fullname], ...
另外,使用sql参数非常重要
答案 1 :(得分:0)
首先检查SQL Server服务是否正在运行。
之后,检查连接字符串中的数据源值,如果您使用的是SQLExpress,则可能是
SqlConnection con = new SqlConnection("Data Source=SHAB\SQLEXPRESS;InitialCatalog=Phonebook;Integrated Security=True");
答案 2 :(得分:0)
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。
如错误所示,您的连接无法访问SQL Server,请确保您能够执行module ActionRegistry
let mutable private actions : (string -> unit) list = []
let register f =
actions <- f :: actions
let invokeRegisteredActions() =
actions
|> List.iter (fun action -> action())
如果telnet SHAB 1433
失败:
如果未配置自定义端口
Telnet
和1433
上的传入连接-必须在运行SQL Service的服务器上完成1434 (TCP and UDP)
一起使用。您可以DataSource=SHAB\\SQLEXPRESS
进行验证如果已配置自定义端口
telnet SHAB 1433
时,您的连接应该在这里工作。但是,您可以执行DataSource = SHAB,<custom port>
进行验证答案 3 :(得分:-1)
您的连接字符串必须在app.config文件中
<connectionStrings>
<add name="DbConnection" connectionString="Data Source=.\SQLEXPRESS;Initial
Catalog=dbname;Integrated Security=True"
providerName="System.Data.EntityClient"
<connectionStrings>
从
导入配置using System.Configuration;
添加数据库连接
public string DbCon =
ConfigurationManager.ConnectionStrings["DbConnection"].ToString();
var Query=@"INSERT INTO [dbo].[registration]([username[fullname],[Password]) VALUES('" + username.Text+"', '"+fullname.Text+"', '"+password.Text+"')"
using (con = new SqlConnection(DbCon))
{
con.Open();
SqlCommand com = new SqlCommand(Query, con);
com.ExecuteNonQuery();
con.Close();
}
答案 4 :(得分:-3)
我认为您只是在连接字符串中省略了用户名和密码。 尝试以下代码。
Data Source=YourServer;Initial Catalog=YourDatabaseName;User ID=YourUsername;Password=YourPassword