首先我知道这已被多次询问过,但我找不到任何与我的问题有关的内容。基本上我有文本输入我需要插入本地数据库,我已经多次检查我的连接字符串,并且很确定它不是问题。
<add name="ElectricsOnline"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\electricsonline.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"/>
这是插入的方法
protected void btnSubmit_Click(object sender, EventArgs e)
{
using (var connection = new SqlConnection("ElectricsOnline"))
{
connection.Open();
var sqlStatement = "INSERT INTO Orders (FirstName, LastName, Phone, Address, Suburb, State, Postcode, Ctype, CardNo, ExpDate, Email) VALUES(@FirstName, @LastName, @Phone, @Address, @Suburb, @State, @Postcode, @Ctype, @CardNo, @ExpDate, @Email)";
using (var cmd = new SqlCommand(sqlStatement, connection))
{
cmd.Parameters.AddWithValue("@FirstName", txtFirstname.Text);
cmd.Parameters.AddWithValue("@LastName", txtLastname.Text);
cmd.Parameters.AddWithValue("@Phone", txtPhone.Text);
cmd.Parameters.AddWithValue("@Address", txtAddress.Text);
cmd.Parameters.AddWithValue("@Suburb", txtSuburb.Text);
cmd.Parameters.AddWithValue("@State", txtState.Text);
cmd.Parameters.AddWithValue("@Postcode", txtPostcode.Text);
cmd.Parameters.AddWithValue("@Ctype", ddlCtype.SelectedValue.ToString());
cmd.Parameters.AddWithValue("@CardNo", txtCardno.Text);
cmd.Parameters.AddWithValue("@ExpDate", txtExpDate.Text);
cmd.Parameters.AddWithValue("@Email", txtEmail.Text);
cmd.ExecuteNonQuery();
}
}
Response.Redirect("CheckoutReview.aspx");
}
源错误显示此
初始化字符串的格式不符合从索引0开始的规范。
第22行:{
第23行:
第24行:使用(var connection = new SqlConnection(“ElectricsOnline”))
第25行:{
第26行:connection.Open();
非常感谢任何帮助!
答案 0 :(得分:3)
您不能直接使用配置文件中的连接的名称,因为new SqlConnection(...)
本身需要连接字符串,而不是配置文件中的名称。
在使用连接字符串创建连接之前,需要从配置中检索连接字符串。按如下方式更改您的代码:
var connStr = System
.Configuration
.ConfigurationManager
.ConnectionStrings["ElectricsOnline"]
.ConnectionString;
using (var connection = new SqlConnection(connStr)) {
...
}
答案 1 :(得分:1)
new SqlConnection("ElectricsOnline")
我不知道你在哪里可以传递配置值的名称。您需要传入连接字符串。从配置中读取它并将其传递给构造函数。