0

我尝试使用连接字符串进行连接并收到此错误:“初始化字符串的格式不符合从索引 0 开始的规范。”

这是我的代码:

   SqlConnection Con = new SqlConnection(@"C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\TARGIL3.MDF");
        SqlDataAdapter adapt = new SqlDataAdapter();
        adapt.InsertCommand = new SqlCommand(" INSERT INTO tblEmployee VALUES (@employeeNumber, @employeePrivateName, @employeeFamilyName ,@city, @street, @houseNo, @phoneNumber, @birthDate, @startWorkingDate)", Con);
        adapt.InsertCommand.Parameters.Add("@employeeNumber", SqlDbType.Char).Value = textBox1.Text;
        adapt.InsertCommand.Parameters.Add("@employeePrivateName", SqlDbType.VarChar).Value = textBox2.Text;
        adapt.InsertCommand.Parameters.Add("@employeeFamilyName", SqlDbType.VarChar).Value = textBox3.Text;
        adapt.InsertCommand.Parameters.Add("@city", SqlDbType.VarChar).Value = textBox4.Text;
        adapt.InsertCommand.Parameters.Add("@street", SqlDbType.VarChar).Value = textBox5.Text;
        adapt.InsertCommand.Parameters.Add("@houseNo", SqlDbType.Int).Value = textBox6.Text;
        adapt.InsertCommand.Parameters.Add("@phoneNumber", SqlDbType.Char).Value = textBox7.Text;
        adapt.InsertCommand.Parameters.Add("@birthDate", SqlDbType.DateTime).Value = Convert.ToDateTime(textBox8.Text);
        adapt.InsertCommand.Parameters.Add("@startWorkingDate", SqlDbType.DateTime).Value = Convert.ToDateTime(textBox8.Text);


        Con.Open();
        adapt.InsertCommand.ExecuteNonQuery();
        Con.Close();
4

3 回答 3

0

用这个:

string connString = "Data Source=SERVERNAME;Initial Catalog=DATABASENAME; User ID = USERNAME; Password=PASSWORD;Integrated Security=false";
SqlConnection Con = new SqlConnection(connString);
于 2013-08-13T06:44:31.897 回答
0

您不能只将文件名放在连接字符串中

C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL10.SQLEXPRESS\MSSQL\DATA\TARGIL3.MDF

Sql Server 是一个通常的“服务”,你和服务对话......

现在。如果您使用的是“Express”版本......那么您可能必须包含 AttachDbFilename 参数。

http://www.connectionstrings.com/sqlconnection/attach-a-database-file-on-connect-to-a-local-sql-server-express-instance-1/

Server=.\SQLExpress;AttachDbFilename=C:\MyFolder\MyDataFile.mdf;Database=dbname;
Trusted_Connection=Yes;

但是,如果您不使用“Express”,那么您应该只输入有关 Sql Server SERVICE 的信息(机器\实例名等),而不关心 .MDF 的物理路径。

Sql Server 不是 JET (Access)。使用 JET,您只需指定文件名。

如果您仍然遇到问题,您应该发布您正在使用的 sql server 版本.....执行“选择@@version”并报告。

于 2013-07-29T19:13:06.743 回答
0

你的连接字符串是错误的。如果您使用 SQL Server 身份验证,它应该是这种形式:

Server=myServerAddress;Database=myDataBase;User Id=myUsername;
Password=myPassword;

myServerAddress运行 SQL Server 的计算机的 IP 或主机名在哪里。如果是你的电脑,localhost可能会工作。

myUsername并且myPassword是连接到服务器的用户的凭据。

如果您使用受信任的连接,您的连接字符串应该是这种形式:

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

您可以在此处查看更多示例:http: //www.connectionstrings.com/sql-server/

于 2013-07-29T17:12:56.687 回答