ConnectionString数据库c#

时间:2013-07-16 18:43:09

标签: c# .net sql database sql-server-2008-r2

我正在创建一个数据库实用程序,我似乎无法使我的连接字符串正确。

   SqlConnection conn = new SqlConnection();
   conn.ConnectionString =  
        "Data Source=.\\SQLExpress;" +
        "User Instance=true;" +
        "Integrated Security=true;" +
        "AttachDbFilename=|DataDirectory|ConfigurationData.mdf;";

我相信这是正确的格式。至于数据源,我的sql server是SQLExpress,运行sql server 2008 R2。我的数据库名为ConfigurationData。我错过了什么吗?

当我运行它时,它会打开数据库 - 我认为它确实存在,因为它没有通过异常 - 但是当我尝试插入表时,它实际上并没有插入它但它执行命令。

conn.Open();
        try
        {

          SqlCommand comm = new SqlCommand("INSERT INTO Test " + "(id,number) " + "  VALUES(" + 10 + " , " + 12 + ")", conn);
          comm.ExecuteNonQuery();
            Console.WriteLine("Database is created successfully", "MyProgram");
        }
        catch (Exception ex)
        {

        }
        finally
        {
            if ((conn.State == ConnectionState.Open))
            {
                conn.Close();
            }
        }

5 个答案:

答案 0 :(得分:1)

修改 记得有一段时间我回答了类似的问题。看看:

Why can't I insert data into local database (SQL Compact Edition) with C#?

我认为这不是连接字符串问题。但是供您参考,一个好的网站是http://www.connectionstrings.com/sql-server-2008/

你需要其中一个:

附加位于数据目录中的数据库文件,连接到本地SQL Server Express实例

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname;
Trusted_Connection=Yes;

在连接到本地SQL Server Express实例

时附加数据库文件
Server=.\SQLExpress;AttachDbFilename=C:\MyFolder\MyDataFile.mdf;Database=dbname;
Trusted_Connection=Yes;

在本地SQL Server Express实例上使用用户实例 用户实例功能在连接期间动态创建新的SQL Server实例。这仅适用于本地SQL Server实例,并且仅在通过本地命名管道使用Windows身份验证进行连接时才有效。目的是能够创建完整权限SQL

对计算机上具有有限管理权限的用户的服务器实例。

Data Source=.\SQLExpress;Integrated Security=true;
AttachDbFilename=C:\MyFolder\MyDataFile.mdf;User Instance=true;

要使用用户实例功能,您需要在SQL Server上启用它。这是通过执行以下命令来完成的:sp_configure'user instances enabled','1'。要禁用该功能,请执行sp_configure'user instances enabled','0'。

答案 1 :(得分:0)

尝试(本地)而不是点,在Win XP中无法识别点

conn.ConnectionString =  
        "Data Source=(local)\\SQLExpress;" +
        "User Instance=true;" +
        "Integrated Security=true;" +
        "AttachDbFilename=|DataDirectory|ConfigurationData.mdf;";

答案 2 :(得分:0)

为什么不直接使用SqlConnectionStringBuilder类?:

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = @"(local)\SQLExpress";
builder.UserInstance = true;
builder.IntegratedSecurity = true;
builder.AttachDBFilename = "|DataDirectory|ConfigurationData.mdf";
SqlConnection conn = new SqlConnection(builder.ConnectionString());

输出:

    "Data Source=(local)\\SQLExpress;AttachDbFilename=|DataDirectory|ConfigurationData.mdf;Integrated Security=True;User Instance=True"

答案 3 :(得分:0)

你的SQL语句也不对,你应该使用参数,但这是你应该拥有的

SqlCommand comm = new SqlCommand("INSERT INTO Test (id, number)  VALUES('" + 10 + " ', '" + 12 + "')", conn);

答案 4 :(得分:0)

其中一种方法是在web.config文件中添加连接字符串,如下所示:

单击数据库资源管理器上的数据库属性。在那里你会发现其属性中的连接字符串。 Jus将它添加到下面的连接字符串中。

<configuration>
    <connectionStrings>
        <add name="ConnectionName" connectionString="your connection string" providerName="System.Data.SqlClient"/>
    </connectionStrings>
</configuration>

然后在页面中您可以将其存储在字符串中或直接引用您的连接,如下所示:

Connection con=new SqlConnection();
con.ConnectionString=ConfigurationManager.ConnectionStrings["connString"].ToString();

我怀疑你的插入语句没有正确声明。

试试这个:

SqlCommand comm = new SqlCommand("INSERT INTO Test (id,number) VALUES('10' ,'12')", con);

这一切都来自我...希望它能帮助你......