PDA

View Full Version : آموزش: خطا در هنگاه ارسال اطلاعات به بانک اطلاعاتی



m.toosi
یک شنبه 29 آبان 1390, 13:28 عصر
وقتی روی کلید buuton کلیک میکنم و میگم اطلاعات تکس باکس ها رو بفرسته به sql خطا میده و میگه


A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

کی میدونه این خطا برای چی ایجاد میشه؟


و در btn_click نوشتم
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "Insert into tbl_heyat values('" + txtName.Text + "','" + txtTime.Text + "','" + txtMakan.Text + "','" + txtSokhanran.Text + "','" + txtMaddah.Text + "','" + txtDetails.Text + "')";
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();

البته بعد خطا میگیره از ccn.open خوب این کلمه مشکلی نداره چون چندین بار همینجوری برنامه نوشتم

fakhravari
یک شنبه 29 آبان 1390, 13:40 عصر
به دیتابیس ارتباط ندارید
کانکشن استرینگ چک کنید

m.toosi
یک شنبه 29 آبان 1390, 14:05 عصر
اون خطا درست شد حالا خطا میده و میگه

An explicit value for the identity column in table 'tbl_heyat' can only be specified when a column list is used and IDENTITY_INSERT is ON.

fakhravari
یک شنبه 29 آبان 1390, 15:15 عصر
این جدول چک کنtbl_heyat
فیلد id نباید مقدار بدی.
چودش auto number
توی کد بالا که مقدار id نمیبینم احتمالا ارتباط نداری با جدول دیگه

fakhravari
یک شنبه 29 آبان 1390, 15:19 عصر
این طوری کار کن

protected string SqlAdd = "INSERT INTO [Etelaeie] ([Date], [Time], [Comennt], [Title], [Subject]) VALUES (@Date, @Time, @Comennt, @Title, @Subject)";

SqlConnection con1 = new SqlConnection(ConnectionString);
con1.Open();
SqlCommand cmd1 = new SqlCommand(SqlAdd, con1);
cmd1.CommandType = CommandType.Text;
cmd1.Parameters.Add("@Date", SqlDbType.NVarChar).Value = this.Date;
cmd1.Parameters.Add("@Time", SqlDbType.NVarChar).Value = this.Time;
cmd1.Parameters.Add("@Comennt", SqlDbType.NVarChar).Value = this.Comennt;
cmd1.Parameters.Add("@Title", SqlDbType.NVarChar).Value = this.Title;
cmd1.Parameters.Add("@Subject", SqlDbType.NVarChar).Value = this.Subject;
cmd1.ExecuteNonQuery();
con1.Close();

m.toosi
یک شنبه 29 آبان 1390, 17:02 عصر
ممنون از لطفت دوست عزیز
میشه بگی مزیت این روسش به نسبت روش قبل چیه؟

hjran abdpor
یک شنبه 29 آبان 1390, 17:08 عصر
با سلام.
هم برنامه منطق زبیا و Syntex خوبی داره ، هم از لحاظ امنیتی خوب است .

smm2006sh
یک شنبه 29 آبان 1390, 22:16 عصر
سلام m.toosi
به نظر من یکی از مهم ترین و بهترین مزیت استفاده از این روش امنیت و جلوگیری از حمله SQL Injection باشه .
این لینک به دردت میخوره :
http://barnamenevis.org/showthread.php?309954-%D8%B1%D9%88%D8%B4-%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D8%A7%D9%85%DB%8C%D9%86-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-%D9%87%D8%A7%DB%8C%D9%85%D8%A7%D9%86-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%B1%D8%B9%D8%A7%DB%8C%D8%AA-%DA%A9%D9%86%DB%8C%D9%85

موفق باشید
یا علی