我正在尝试将客户详细信息插入数据库。以下是抛出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());
}
答案 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 Source
,Initial 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
)