مشکل با خواندن اطلاعات از Data Base
با سلام به همه دوستان عزیز ، من تا حالا با فایل ها زیاد کار کرده ام ، ولی تجربه چندانی
در کارکردن با DB نداشته ام .
سوال من : من یک جدول بانک اطلاعاتی در Access ایجاد کرده ام به نام student و نام فایل
بانک اطلاعاتی university.mdb میباشد ، جدول دارای 3 ستون و دارای فیلد های
Name , StdNum , Major میباشد ، من با کد زیر میخواهم اطلاعات را از DB خوانده و در یک
ListBox نشان دهم ، ولی با کد زیر فقط سطر اول جدول نشان داده میشود و بقیه اطلاعات
سطر های بعدی نشان داده نمی شوند !! ممنون میشم اگه راهنمایی کنید :
کد برنامه :
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\university.mdb";
OleDbConnection con1 = newOleDbConnection(connectionString);
con1.Open();
string queryString = "SELECT * FROM student";
OleDbCommand c1 = newOleDbCommand(queryString);
c1.Connection = con1;
OleDbDataReader dr = c1.ExecuteReader();
object[] list = newobject[10];
while (dr.Read())
{
dr.GetValues(list);
}
con1.Close();
foreach (object obj in list)
{
if(obj!=null)
listBox1.Items.Add(obj);
}
متشکر و ممنون .
نقل قول: مشکل با خواندن اطلاعات از Data Base
سلام
یه راه بهت میگم که شاید غیراصولی و غیر استادارد باشه ولی همیشه جواب میده.
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\university.mdb";
DataSet dataSet;
OleDbDataAdapter dataAdapter;
try
{
dataSet = new DataSet();
dataAdapter = new OleDbDataAdapter("SELECT * FROM student", connectionString);
dataAdapter.Fill(dataSet, "StudentTable");
int tableRowsCount = dataSet.Tables["StudentTable"].Rows.Count;
if (tableRowsCount > 0)
{
for (int count = 0; count < tableRowsCount; count++)
{
string name = dataSet.Tables["StudentTable"].Rows[count]["Name"].ToString();
string stdNum = dataSet.Tables["StudentTable"].Rows[count]["StdNum"].ToString();
string major = dataSet.Tables["StudentTable"].Rows[count]["Major"].ToString();
listBox1.Items.Add(stdNum + " " + name + " " + major);
}
}
}
catch (OleDbException ex)
{
MessageBox.Show("Error : " + ex.Message);
}
finally
{
dataSet = null;
dataAdapter = null;
}
اگه توضیح خواستی بگو برات بزارم
موفق باشی
نقل قول: مشکل با خواندن اطلاعات از Data Base
دوست عزیز برای نمایش اطلاعات یک جدول بهتره از DataGridView استفاده کنی نه از ListBox
ListBox قابلیت نمایش فقط یک ستون رو داره اما DataGridView در تعداد ستونها چندادن محدودیتی نداره.
نقل قول: مشکل با خواندن اطلاعات از Data Base
این کد برای نمایش اطلاعاد در ListView هست.
public void fill_lst()
{
try
{
MyDbConnection.Open();
MyDbCommand = MyDbConnection.CreateCommand();
MyDbCommand.CommandText = "SELECT f1,f2,f3,f4,f5 FROM T1 WHERE f1 = 1";
OleDbDataReader oleReader = MyDbCommand.ExecuteReader();
list_T1.Items.Clear();
/// fill the list box
ListViewItem lvItem;
object[] objArray = new object[ 5 ];
int nColumn = 0;
while( oleReader.Read() == true )
{
nColumn = 0;
oleReader.GetValues( objArray );
lvItem = list_T1.Items.Add( objArray.GetValue( nColumn++ ).ToString() );
for( ; nColumn < 5; nColumn++ )
{
lvItem.SubItems.Add( oleReader.GetValue( nColumn ).ToString() );
}
}
MyDbConnection.Close();
}
catch( OleDbException exp )
{
string strError = exp.Message;
MessageBox.Show( this, strError, "Exception thrown" );
MyDbConnection.Close();
}
}
نقل قول: مشکل با خواندن اطلاعات از Data Base
نقل قول:
نوشته شده توسط
Reza_Yarahmadi
دوست عزیز برای نمایش اطلاعات یک جدول بهتره از DataGridView استفاده کنی نه از ListBox
ListBox قابلیت نمایش فقط یک ستون رو داره اما DataGridView در تعداد ستونها چندادن محدودیتی نداره.
حرف شما کاملا منطقی و درسته !!! ولی من برای تست کردن کد اینکارو انجام داده بودم ،
و می خواستم فقط اطلاعات رو بخونم !!!
ممنون از راهنمایی شما !!!
نقل قول: مشکل با خواندن اطلاعات از Data Base
نقل قول:
نوشته شده توسط
sd.CSharpProgrammer
سلام
یه راه بهت میگم که شاید غیراصولی و غیر استادارد باشه ولی همیشه جواب میده.
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\university.mdb";
DataSet dataSet;
OleDbDataAdapter dataAdapter;
try
{
dataSet = new DataSet();
dataAdapter = new OleDbDataAdapter("SELECT * FROM student", connectionString);
dataAdapter.Fill(dataSet, "StudentTable");
int tableRowsCount = dataSet.Tables["StudentTable"].Rows.Count;
if (tableRowsCount > 0)
{
for (int count = 0; count < tableRowsCount; count++)
{
string name = dataSet.Tables["StudentTable"].Rows[count]["Name"].ToString();
string stdNum = dataSet.Tables["StudentTable"].Rows[count]["StdNum"].ToString();
string major = dataSet.Tables["StudentTable"].Rows[count]["Major"].ToString();
listBox1.Items.Add(stdNum + " " + name + " " + major);
}
}
}
catch (OleDbException ex)
{
MessageBox.Show("Error : " + ex.Message);
}
finally
{
dataSet = null;
dataAdapter = null;
}
اگه توضیح خواستی بگو برات بزارم
موفق باشی
=====================================
دوست عزیز ممنون از راهنمایی شما ، اگه زحمتی نیست یه توضیح مختصری در مورد کد
بفرمایید !!!
ممنون و متشکر !!!