PDA

View Full Version : حرفه ای: مشکل در برقرار کردن ارتباط اطلاعات فرم و Database اکسس



golnouri
چهارشنبه 03 فروردین 1390, 18:25 عصر
دوستان واقعا گیج شدم!
فرمم رو در محیط VS 2008 طراحی کردم و برای برقرار کردن ارتباطش با DataBase اکسس از کدهای ذیل استفاده کردم. بدون ارور اجرا میشه اما موقعی که کلید ثبت و میزنم یه پیامی میده که عکسش و براتون میذارم. لطفا کمکم کنید بدجوری گیر افتادم.

کدها هم:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OleDb;

public partial class ContactUs : System.Web.UI.Page
{
DataSet ds = new DataSet();
string strCon;
string strSql;
OleDbDataAdapter da = new OleDbDataAdapter();
OleDbConnection Con = new OleDbConnection();
DataRow newRow;
OleDbCommandBuilder cb = new OleDbCommandBuilder();

protected void Page_Load(object sender, EventArgs e)
{
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");

}
protected void Button2_Click(object sender, EventArgs e)
{
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;
ds.Tables["Contact"].Rows.Add(newRow);
cb = new OleDbCommandBuilder(da);
da.InsertCommand = cb.GetInsertCommand();
da.Update(ds, "Contact");
Con.Close();
}

karim orooji
چهارشنبه 03 فروردین 1390, 21:21 عصر
با سلام به دوست گرامی
سال نوتون مبارک
با توجه به عکسی که گذاشتید غلط املایی در کد نویسی
شما دارید
برنامه یک بار دیگه بررسی کنید

golnouri
چهارشنبه 03 فروردین 1390, 21:40 عصر
کدی که نوشتم و خواهش می کنم چک کنید چون هر چند بار که میبینم هیچ غلط املایی نمیبینم.

karim orooji
چهارشنبه 03 فروردین 1390, 22:08 عصر
در قسمت آدرس دهی بانک برنامه
strCon = "Provider = Microsoft.Jet.OLEDB.4.0;" + "Data Source = |DataDirectory|/Contact.mdb";
بارنگ قرمز مشخص کردم اشتباه نوشتید دقت کنید
strCon = "Provider = Microsoft.Jet.OLEDB.4.0;" + "Data Source = |DataDirectory|\Contact.mdb";
موفق باشید

golnouri
چهارشنبه 03 فروردین 1390, 23:57 عصر
با \ امتحان کردم با \\ امتحان کردم اما همون ارور و میده. (همون عکس) واقعا دلیلش چی میتونه باشه؟ واقعا کلافه شدم.

karim orooji
پنج شنبه 04 فروردین 1390, 00:22 صبح
اینطوری نمیشه برنامه رو بزار

golnouri
پنج شنبه 04 فروردین 1390, 00:50 صبح
نمی دونم ین مساله مهمه یا نه اما این صفحه ای که کدهای فوق توش نوشته شده زیر مجموعه ی یک MasterPage هستش.
اون صفحه رو به همراه دیتا بیسش گذاشتم.

karim orooji
پنج شنبه 04 فروردین 1390, 11:19 صبح
نقل قول: مشکل در برقرار کردن ارتباط اطلاعات فرم و Database اکسس


سلام دوست عزیز
کد برنامه رو به این صورت بنویسی
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Data.OleDb;
partial class _Default : System.Web.UI.Page
{
DataSet ds = new DataSet();
OleDbDataAdapter dta = new OleDbDataAdapter("SELECT * FROM Contact", "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = |DataDirectory|\\Contact.mdb");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
bound();
}
count_bank();
}
public void bound()
{
ds.Clear();
dta.Fill(ds, "Contact");
GridView1.DataSource = ds;
GridView1.DataBind();
}
int int1;
public void count_bank()
{
//بدست آوردن آخرین شماره آی دی در بانک
OleDbConnection con = new OleDbConnection();
OleDbCommand com = new OleDbCommand();
con.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=|datadirectory|\\Contact.mdb;";
con.Open();
com.Connection = con;
com.CommandText = "SELECT count(id) FROM Contact";
object a1 = com.ExecuteScalar();
int p = 0;
if (!string.IsNullOrEmpty(a1.ToString())) {
p = Convert.ToInt32(a1) + 1;
int1 = p;
con.Close();
} else {
p = 1;
int1 = p;
con.Close();
}
//بدست آوردن آخرین شماره آی دی در بانک
}
protected void Button2_Click(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection();
OleDbCommand com = new OleDbCommand();
con.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\Contact.mdb;";
con.Open();
com.Connection = con;
com.CommandText = "insert into Contact values(@id,@Name,@Email,@Mobile,@Subject,@Text)";
var _with1 = com;
_with1.Parameters.AddWithValue("id", int1);
_with1.Parameters.AddWithValue("Name", TextBox1.Text);
_with1.Parameters.AddWithValue("Email", TextBox2.Text);
_with1.Parameters.AddWithValue("Mobile", TextBox3.Text);
_with1.Parameters.AddWithValue("Subject", TextBox4.Text);
_with1.Parameters.AddWithValue("Text", TextBox5.Text);
com.ExecuteNonQuery();
con.Close();
Label6.Text = "اطلاعات فرم تماس ثبت گردید و در صورت لزوم پاسخ داده خواهد شد. با تشکر.";
TextBox1.Text = "";
TextBox2.Text = "";
TextBox3.Text = "";
TextBox4.Text = "";
TextBox5.Text = "";
bound();
TextBox1.Focus();
}
protected void Button1_Click(object sender, EventArgs e)
{
TextBox1.Text = "";
TextBox2.Text = "";
TextBox3.Text = "";
TextBox4.Text = "";
TextBox5.Text = "";
ppr.Visible = true;
ppq.Visible = true;
}
public _Default()
{
Load += Page_Load;
}
}
من به اون صورت با c# آشنایی ندارم ولی با کمک این صفحه تونستم برنامه رو تبدلیلش کنم (http://www.developerfusion.com/tools/convert/vb-to-csharp/)

راستی برای نمایش اطلاعات در برنامه یک گرید گذاشتم تا بهتر بشه اطلاعات داخل بانک رو نمایش بده

و برای مدیریت نظر ها میشه در گرید دکمه تعریف کرد که بتونی ویرایش و حذف و تایید و جواب نظر و... رو هم داد

golnouri
پنج شنبه 04 فروردین 1390, 12:23 عصر
دوست عزیز واقعا ممنونم اما این کدهایی که نوشتید Asp.net نیست. و درست نمیتونم درکش کنم. مثلا اون using visual basic و یا ...
نظرتون در مورد فایل که ارسال کردم چی بود؟ مشکلش چی بود؟
من با همون کدها چندتا سایت و پیاده کردم اما این مشکل عجیب وجود نداشت.

karim orooji
پنج شنبه 04 فروردین 1390, 18:20 عصر
با سلام به دوست عزیز
آره من گفتم که با زبون c# اشنایی چندانی ندارم برای همن برنامه رو تبدیلش کردم
من زبون برنامه نویسیم vb
به هرحال برنامه رو کداش یکم با اون جوری که شما نوشته بودید تغییر کرده

باز سوال بود مطرح کنید
من در خدمتم


برنامه هم به زبون C# و vb مباشید

موفق باشید