emperor8778
چهارشنبه 08 اردیبهشت 1389, 13:11 عصر
سلام دوستان. در حال طراحی سایتی هسنم که قراره بعد از ثبت نام یه سری اطلاعات تکمیلی رو از کاربر بگیره و ذخیره کنه. برای گرفتن این اطلاعات این کدها رو نوشتم :
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = null;
SqlTransaction trans = null;
SqlCommand cmd;
string strcon = "Data Source=MILAD-PC\\SQLEXPRESS;Initial Catalog=gcd;Integrated Security=True";
conn = new SqlConnection(strcon);
conn.Open();
trans = conn.BeginTransaction();
cmd = new SqlCommand();
cmd.Connection = conn;
cmd.Transaction = trans;
cmd.CommandText = "insert into details(username,fname,lname,burn,state,city,addre ss,postcode,tel) values (@username,@fname,@lname,@burn,@state,@city,@addre ss,@postcode,@tel)";
cmd.Parameters.Add("username", SqlDbType.NVarChar, 20);
cmd.Parameters.Add("fname", SqlDbType.NVarChar, 25);
cmd.Parameters.Add("lname", SqlDbType.NVarChar, 30);
cmd.Parameters.Add("burn", SqlDbType.NVarChar, 18);
cmd.Parameters.Add("state", SqlDbType.NVarChar, 21);
cmd.Parameters.Add("city", SqlDbType.NVarChar, 30);
cmd.Parameters.Add("address", SqlDbType.NVarChar, 250);
cmd.Parameters.Add("postcode", SqlDbType.NVarChar, 11);
cmd.Parameters.Add("tel", SqlDbType.NVarChar, 12);
cmd.Parameters.AddWithValue("@username", Label2.Text);
cmd.Parameters.AddWithValue("@fname", TextBox2.Text);
cmd.Parameters.AddWithValue("@lname", TextBox3.Text);
string day = DropDownList2.SelectedItem.ToString();
string month = DropDownList3.SelectedItem.ToString();
string year = DropDownList4.SelectedItem.ToString();
cmd.Parameters.AddWithValue("@burn", day + " " + month + " " + year);
cmd.Parameters.AddWithValue("@state", DropDownList1.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@city", TextBox6.Text);
cmd.Parameters.AddWithValue("@address", TextBox7.Text);
cmd.Parameters.AddWithValue("@postcode", TextBox8.Text);
cmd.Parameters.AddWithValue("@tel", TextBox9.Text);
cmd.ExecuteNonQuery();
conn.Close();
Response.Redirect("default.aspx");
}
}
ولی بعد از اینکه برنامه اجرا میشه و کاربر اطلاعاتش رو وارد می کنه و روی دکمۀ ثبت کلیک می کنه، برنامه از خطی Executenonquery خطا می گیره. رنگ این خط رو در قسمت کد قرمز کردم. خطایی که برنامه می گیره این هستش :
The variable name '@username' has already been declared. Variable names must be unique within a query batch or stored procedure.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
لطفاً اگه ممکنه راهنمایی کنین. پیشاپیش ممنونم.
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = null;
SqlTransaction trans = null;
SqlCommand cmd;
string strcon = "Data Source=MILAD-PC\\SQLEXPRESS;Initial Catalog=gcd;Integrated Security=True";
conn = new SqlConnection(strcon);
conn.Open();
trans = conn.BeginTransaction();
cmd = new SqlCommand();
cmd.Connection = conn;
cmd.Transaction = trans;
cmd.CommandText = "insert into details(username,fname,lname,burn,state,city,addre ss,postcode,tel) values (@username,@fname,@lname,@burn,@state,@city,@addre ss,@postcode,@tel)";
cmd.Parameters.Add("username", SqlDbType.NVarChar, 20);
cmd.Parameters.Add("fname", SqlDbType.NVarChar, 25);
cmd.Parameters.Add("lname", SqlDbType.NVarChar, 30);
cmd.Parameters.Add("burn", SqlDbType.NVarChar, 18);
cmd.Parameters.Add("state", SqlDbType.NVarChar, 21);
cmd.Parameters.Add("city", SqlDbType.NVarChar, 30);
cmd.Parameters.Add("address", SqlDbType.NVarChar, 250);
cmd.Parameters.Add("postcode", SqlDbType.NVarChar, 11);
cmd.Parameters.Add("tel", SqlDbType.NVarChar, 12);
cmd.Parameters.AddWithValue("@username", Label2.Text);
cmd.Parameters.AddWithValue("@fname", TextBox2.Text);
cmd.Parameters.AddWithValue("@lname", TextBox3.Text);
string day = DropDownList2.SelectedItem.ToString();
string month = DropDownList3.SelectedItem.ToString();
string year = DropDownList4.SelectedItem.ToString();
cmd.Parameters.AddWithValue("@burn", day + " " + month + " " + year);
cmd.Parameters.AddWithValue("@state", DropDownList1.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@city", TextBox6.Text);
cmd.Parameters.AddWithValue("@address", TextBox7.Text);
cmd.Parameters.AddWithValue("@postcode", TextBox8.Text);
cmd.Parameters.AddWithValue("@tel", TextBox9.Text);
cmd.ExecuteNonQuery();
conn.Close();
Response.Redirect("default.aspx");
}
}
ولی بعد از اینکه برنامه اجرا میشه و کاربر اطلاعاتش رو وارد می کنه و روی دکمۀ ثبت کلیک می کنه، برنامه از خطی Executenonquery خطا می گیره. رنگ این خط رو در قسمت کد قرمز کردم. خطایی که برنامه می گیره این هستش :
The variable name '@username' has already been declared. Variable names must be unique within a query batch or stored procedure.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
لطفاً اگه ممکنه راهنمایی کنین. پیشاپیش ممنونم.