PDA

View Full Version : روش خیلی ساده برای نمایش یک جدول در .net 2005 access



ali_hadian
پنج شنبه 19 بهمن 1385, 13:07 عصر
سلام
من میخوام موقع زده شدن یک کلید اطلاعات مربوط به یک جدول access را در یه فرم نشون بدم
در vs2003 با کد زیر میشد این کار رو کرد:


OleDbConnection * cn = new OleDbConnection(CONNECTION_STRING);
OleDbDataAdapter * da = new OleDbDataAdapter();
OleDbCommand * cmd = new OleDbCommand(Query,cn);

da->SelectCommand = cmd;
DataSet * dataSet = new DataSet("Students");
da->Fill(dataSet);


//there is a DataGrid in the form named DGrid

DGrid->DataSource = DataSet
DGrid->DataBind();

ولی در 2005 متد databind وجود ندارد
لطفا یه کد خیلی ساده معرفی کنین که همین کار رو در 2005 انجام بده
زبانش هم مهم نیست هرچی بود خوبه
با هر کنترلی که بلدید Datagrid یا DataGridView
فقط خواهشا به صورت کد باشه نه visual

HaddadPro
پنج شنبه 19 بهمن 1385, 15:42 عصر
OleDbConnection cn = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
OleDbDataAdapter adapter = new OleDbDataAdapter();
DataSet ds = new DataSet();

cn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyDB.mdb";
cmd.Connection = cn;
cmd.CommandText = "SELECT * FROM Table";
adapter.SelectCommand = cmd;
adapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];

//Movafagh bashi

ali_hadian
پنج شنبه 19 بهمن 1385, 15:48 عصر
سلام
از بابت کدتون خیلی ممنون

میشه یه کد ساده هم بزارین که این DataGrid به صورت درختی نباشه؟
یعنی فقط همون جدولی را که در آن قرار داده ایم باز شده نمایش داده شود(نیازی نباشد که کاربر روی علامت + و سپس نام جدول کلیک کند

بازم ممنون

amozesh4
جمعه 20 بهمن 1385, 02:38 صبح
Private Sub FillDataUnit()
DAUnit.SelectCommand.CommandText = "Select * from UNITINFO "

DAUnit.Fill(DSUnit, "UNITINFO")
dgUnit.DataSource = DSUnit.Tables("UNITINFO")
dgUnit.Columns(0).Visible = False

dgUnit.Columns(1).HeaderText = " نام واحد"

dgUnit.Columns(2).HeaderText = "نام اختصاری"

dgUnit.Columns(3).HeaderText = "روزهای کارکرد"

dgUnit.Columns(3).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
End Sub

amozesh4
جمعه 20 بهمن 1385, 02:46 صبح
Public Cnn As New OleDb.OleDbConnection("Provider=MSDAORA.1;Password=?;User ID=?;Data Source=?")

amozesh4
جمعه 20 بهمن 1385, 02:47 صبح
Dim DAUnit As New OleDb.OleDbDataAdapter("", Cnn)
Dim DSUnit As New DataSet

amozesh4
جمعه 20 بهمن 1385, 02:48 صبح
Dim DAUnit AsNew OleDb.OleDbDataAdapter("", Cnn)
Dim DSUnit AsNew DataSet

amozesh4
جمعه 20 بهمن 1385, 02:49 صبح
Dim DAUnit AsNew OleDb.OleDbDataAdapter("", Cnn)
Dim DSUnit AsNew DataSet

amozesh4
جمعه 20 بهمن 1385, 02:53 صبح
Dim DAUnit AsNew OleDb.OleDbDataAdapter("", Cnn)
Dim DSUnit AsNew DataSet
دوست عزیز سلام شما باید ابتداری فرمتان زیر وازه کلاس این سه دستور آخر را بگذارید در دستور دایم سی ان ان به جای علامت سئوال متغیر مربوطه را بگذارید البته من برای شما کد وصل شدن به اوراکل راگذاشتم و سپسس تابع فیل را در یک تابع جدید گذاشته البته دیتا وی رو هم باید از قبل تعریف کرده باشی و هر وقت نیاز داشتی دیتا ویو را به این روش صدا بزنی امید وارم به درد بخور باشه اگر مشکلی بود بگو من در خدمتم

amozesh4
جمعه 20 بهمن 1385, 02:53 صبح
Dim DAUnit AsNew OleDb.OleDbDataAdapter("", Cnn)
Dim DSUnit AsNew DataSet

ali_hadian
جمعه 20 بهمن 1385, 08:19 صبح
با سلام

من کدی که قبلا استفاده کردم اینه:
فقط هم از یک dataGrid استفاده کردم
تجربه کار با DataGridView یا DataView را هم ندارم
در 2003 با همون متد DataBind جدول ساخته میشد. ولی در 2005 جدول به صورت درختی نمایش داده میشه
من میخوام که خود برنامه به داخل همون جدولی که بهش داده شده Navigate کنه به عبارت دیگر درختی نباشه

در ضمن کد شما رو امتحان کردم: DataGrid مشخصه ای به نام Columns نداره (نکنه dgUnit چیزی غیر از DATAGrid بوده؟)

به هر حال ممنون




String ^ CONNECTION_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Amoozesh.mdb";
String ^ Query;
Query = "SELECT Students.StudentID, Students.FullName, Departments.DepartmentName, Students.Average FROM Departments INNER JOIN Students ON Departments.DepartmentID = Students.DepartmentID";


OleDbConnection ^ cn = gcnew OleDbConnection(CONNECTION_STRING);
OleDbDataAdapter ^ da = gcnew OleDbDataAdapter();
OleDbCommand ^ cmd = gcnew OleDbCommand(Query,cn);

da->SelectCommand = cmd;
DataSet ^ dataSet = gcnew DataSet();
da->Fill(dataSet);

DGrid->DataSource = dataSet;

ali_hadian
شنبه 21 بهمن 1385, 06:19 صبح
راه حلی نیست؟؟؟

ali_hadian
یک شنبه 22 بهمن 1385, 05:54 صبح
راه حلی نیست؟؟؟