将数据插入SQL Server Express数据库

时间:2015-03-17 13:59:01

标签: c# sql-server-2008-express

我正在尝试将客户详细信息插入数据库。以下是抛出ArgumentException的代码 - 我该如何处理呢?

try
{                
    string constring = "DataSource=.\\SQLEXPRESS;"+"Integrated security=true;"+"User Instance=true;"+"AttachDBFileName=|DataDirectory|Database1.sdf;"+"Initial catalog=Database1";

    using(SqlConnection connection = new SqlConnection(constring))
    {
        connection.Open();

        SqlCommand cins = new SqlCommand("INSERT INTO Customer(cid,cname,mobi)" + "VALUES(@cid , @cname , @mobi)", connection);

        cins.Parameters.AddWithValue("@cid", textBox3.Text);
        cins.Parameters.AddWithValue("@cname", ncustname.Text);
        cins.Parameters.AddWithValue("@mobi", ncustmno.Text);
        cins.ExecuteNonQuery();

        MessageBox.Show("new customer added");
        ncustpn.Hide();
        Class1.refreshcustomertable(cdgv);
        cdgv.Show();          
    }
}
catch (Exception e1)
{
    MessageBox.Show(e1.ToString());
}

2 个答案:

答案 0 :(得分:1)

问题出在这里。

string constring = "DataSource=.\\SQLEXPRESS;"+"Integrated security=true;"+"User Instance=true;"+"AttachDBFileName=|DataDirectory|Database1.sdf;"+"Initial catalog=Database1";

它不是 DataSource ,允许介于两者之间的空格,例如数据源

string constring = "Data Source=.\\SQLEXPRESS;"+"Integrated security=true;"+"User Instance=true;"+"AttachDBFileName=|DataDirectory|Database1.sdf;"+"Initial catalog=Database1";

答案 1 :(得分:0)

从@Sayka回复您必须使用数据源,您还必须从连接字符串中删除"AttachDBFileName=|DataDirectory|Database1.sdf;"Why?

您正在使用 SQL Server ,这意味着您不关心是位于磁盘上的数据库,它是 SQL Server 作业。您通过一些参数(Data SourceInitial Catalog等)连接到SQL Server

string constring = "Data Source=.\\SQLEXPRESS;"+"Integrated security=true;"+"User Instance=true;"+"Initial catalog=Database1";

注意:请确保SQL Server service is running(请回答第1步)。

当您检查SQL Server是否正在运行时,您将在没有SQLEXPRESS的括号中看到类似 SQL Server(SQLEXPRESS)的内容,而不是从Data Source=.\\SQLEXPRESS替换SQLEXPRESS用你在括号中找到的东西。 (例如:如果您发现SQL Server(SQLEXPRESS2012)结果Data Source=.\\SQLEXPRESS2012