ورود

View Full Version : حرفه ای: کدهای اتصال به پایگاه داده بدون ارور است اما کار نمی کند!



golnouri
جمعه 27 اسفند 1389, 15:41 عصر
دوستان برای بخش ContactUs وب سایتم از data base access استفاده کردم که وقتی اجرا می کنم هیچ اروری دریافت نمی کنم اما هیچ نوشته ای رو تو دیتا بیس ثبت نمیکنه!
کدهایی که نوشتم و براتون میذارم دلیلش و بهم بگید.

DataSet ds = new DataSet();
string strSql;
string strCon;
OleDbDataAdapter da = new OleDbDataAdapter();
OleDbConnection Con = new OleDbConnection();
DataRow newRow;
OleDbCommandBuilder cb = new OleDbCommandBuilder();
strCon = "Provider = Microsoft.Jet.OLEDB.4.0;" + "Data Source = |DataDirectory|/Contact.mdb";
strSql = "SELECT * FROM Contact";
Con = new OleDbConnection(strCon);
Con.Open();
da = new OleDbDataAdapter(strSql, Con);
da.Fill(ds, "Contact");
newRow = ds.Tables["Contact"].NewRow();
newRow["Name"] = TextBox1.Text;
newRow["Email"] = TextBox2.Text;
newRow["Mobile"] = TextBox3.Text;
newRow["Subject"] = TextBox4.Text;
newRow["Text"] = TextBox5.Text;
cb = new OleDbCommandBuilder(da);
da.InsertCommand = cb.GetInsertCommand();
da.Update(ds, "Contact");
Con.Close();

hi level hdd
جمعه 27 اسفند 1389, 16:52 عصر
با سلام
تو قسمت دیتا سورستون اون اسلش رو بردار ببین جواب میده.
نیازی هم نیست دو بار Con رو بسازی ، همون رشته ای که مقدار دهی کردی توی سازنده بنویس
که حافظه کمتری هم بگیره.

golnouri
جمعه 27 اسفند 1389, 17:02 عصر
دوست عزیز / رو برداشتم و حتی \\ اسلش و ... رو هم test کردم اما نه اروری دریافت کردم و نه جوابی!
لازم به ذکره که صفحه ی ContactUs زیر مجموعه ی یک MasterPage هستش. ایا این امر میتونه دلیل این مشکل باشه.
دوستان اگه تو تحلیل نگارش کدها مشکلی داشتم مگه نباید Error بده؟

neo1989021
جمعه 27 اسفند 1389, 20:23 عصر
ببین من نمی دونم اما شاید واسه اسلشه

hi level hdd
شنبه 28 اسفند 1389, 13:01 عصر
برای درج و آپدیت و حذف مگه نباید از تابع ExecuteNoneQuery در انتهای آن عمل استفاده و فراخوانی کرد.
قبل از بستن کانکشنت تابع ExecuteNoneQuery رو فراخونی کن. ببین ثبت میشه؟

asif1358
شنبه 28 اسفند 1389, 22:23 عصر
دوست گرامی،
فیلدی بنام Name همیشه مشکل زاست؛ آن را عوض کنید؛ احتمالا مشکل حل میشه.
ضمنا:
بجای استفاده از دیتاست، آداپتر و CommandBuilder که همه شون کند و ناکارا اند؛ از Command استفاده کن:

OleDbConnection con = new OleDbConnection("Provider = ....");
con.Open();
OleDbCommand com = new OleDbCommand("INSERT INTO Contacts (Name, ....) VALUES (@Name, @....)", con);
com.Parameters.AddWithValue("@Name", textBox1.Text);
.......
com.ExecuteNoneQuery();
con.Close();