PDA

View Full Version : انتقال نتیجه کویری به تکس باکس



maryam_87
چهارشنبه 13 مرداد 1389, 15:10 عصر
سلام به همه دوستان
من بعد از انجام یک کویری اطلاعاتم رو می خوام در تکس باکس نشون بدم واسه از دینا گرید هم نمی تونم استفاده کنم
میشه کمکم کنید
خیلی فوریه:گریه:

Pr0grammer
چهارشنبه 13 مرداد 1389, 16:32 عصر
مطالعه این کد فکر کنم بتونه کارتونو راه بندازه :


OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb");
OleDbDataAdapter dap = new OleDbDataAdapter("Select * From Table1", con);;
DataSet dst = new DataSet();
BindingSource bns = new BindingSource();
cn.Open();
dap.Fill(dst, "Table1");
textBox1.DataBindings.Add(new Binding("Text", ds, "Table1.FName"));
con.Close();با فرض این که بانک اکسس و جدول Table1 دارید و می خواین فیلد FNameرو در TextBox1 نشان دهید.

maryam_87
پنج شنبه 14 مرداد 1389, 11:42 صبح
مطالعه این کد فکر کنم بتونه کارتونو راه بندازه :


OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb");
OleDbDataAdapter dap = new OleDbDataAdapter("Select * From Table1", con);;
DataSet dst = new DataSet();
BindingSource bns = new BindingSource();
cn.Open();
dap.Fill(dst, "Table1");
textBox1.DataBindings.Add(new Binding("Text", ds, "Table1.FName"));
con.Close();با فرض این که بانک اکسس و جدول Table1 دارید و می خواین فیلد FNameرو در TextBox1 نشان دهید.
سلام دوست عزيز
من اين كد شما رو نوشتم ولي متاسفانه خطاي زير رو مي دهد


An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll
Additional information: No value given for one or more required parameters.
ميشه كمكم كنيد

Pr0grammer
پنج شنبه 14 مرداد 1389, 13:55 عصر
ای خط رو به using اضافه کنید :

using System.Data.OleDb;

maryam_87
پنج شنبه 14 مرداد 1389, 15:40 عصر
ای خط رو به using اضافه کنید :

using System.Data.OleDb;
اين خط اضافه شده !!!!!!!
من نمي دونم اين خطا واسه چيه
حتي با اس كيو ال هم با اضافه كردن يوزينگ مربوطه هم اين خطا رو ميده!!!!!

csharpprogramer88
شنبه 16 مرداد 1389, 08:00 صبح
cmd = new SqlCommand("select masir from tasvir where (id='" + k + "')", con);
if (con.State == ConnectionState.Closed)
{ con.Open(); }
dr = cmd.ExecuteReader();
int m = 0;
while (dr.Read())
{
textBox1.Text = dr["masir"].ToString();


اميدوارم مفيد باشه

Rocker
شنبه 16 مرداد 1389, 08:01 صبح
میشه کسی کمک کنه؟؟؟:گریه:

اگه در کار کردن با ADO.NET مشکلی نداشته باشید خط زیر میتونه مشکلتون رو حل کنه


objDataView = new DataView(
objDataSet.Tables["authors"]);


txtFirstName.DataBindings.Add("Text",
objDataView, "au_fname");

من فرض کردم که اسم جدول شما authors و اسم فیلدی که میخواهید اطلاعاتش در تکست باکس نمایش داده شود au_fname است.

Rocker
شنبه 16 مرداد 1389, 08:07 صبح
اینم کد کامل یه برنامه که اطلاعات رو تو چند تکست باکس نشون میده و قابلیت "رکورد بعدی" "رکورد قبلی" "اولین رکورد" و "آخرین رکورد" رو هم داره.
فقط روش به دقت مطالعه کن اصلا سخت نیست.

// Import Data and SqlClient namespaces
using System.Data;
using System.Data.SqlClient;


public partial class Form1 : Form
{
// Constant strings
private const string _CommandText =
"SELECT authors.au_id, au_lname, au_fname, " +
"titles.title_id, title, price " +
"FROM authors " +
"JOIN titleauthor ON authors.au_id = " +
"titleauthor.au_id " +
"JOIN titles ON titleauthor.title_id = " +
"titles.title_id " +
"ORDER BY au_lname, au_fname";
private const string _ConnectionString =
"server=localhost;database=pubs;" +
"user id=sa;password=;";
// Declare global objects...
SqlConnection objConnection;
SqlDataAdapter objDataAdapter;
DataSet objDataSet;
DataView objDataView;
CurrencyManager objCurrencyManager;


public Form1()
{
objConnection = new SqlConnection(_ConnectionString);
objDataAdapter = new SqlDataAdapter(
_CommandText, objConnection);
InitializeComponent();
}


private void FillDataSetAndView()
{
// Initialize a new instance of the DataSet object...
objDataSet = new DataSet();
// Fill the DataSet object with data...
objDataAdapter.Fill(objDataSet, "authors");
// Set the DataView object to the DataSet object...
objDataView = new DataView(
objDataSet.Tables["authors"]);
// Set our CurrencyManager object
// to the DataView object...
objCurrencyManager = (CurrencyManager)(
this.BindingContext[objDataView]);
}


private void BindFields()
{
// Clear any previous bindings...
txtLastName.DataBindings.Clear();
txtFirstName.DataBindings.Clear();
txtBookTitle.DataBindings.Clear();
txtPrice.DataBindings.Clear();
// Add new bindings to the DataView object...
txtLastName.DataBindings.Add("Text",
objDataView, "au_lname");
txtFirstName.DataBindings.Add("Text",
objDataView, "au_fname");
٦٥٥
txtBookTitle.DataBindings.Add("Text",
objDataView, "title");
txtPrice.DataBindings.Add("Text",
objDataView, "price");
// Display a ready status...
ToolStripStatusLabel1.Text = "Ready";
}

private void ShowPosition()
{
// Always format the number
// in the txtPrice field to include cents
try
{
txtPrice.Text =
Decimal.Parse(txtPrice.Text).ToString("##0.00");
}
catch(System.Exception e)
{
txtPrice.Text = "0";
txtPrice.Text =
Decimal.Parse(txtPrice.Text).ToString("##0.00");
}
// Display the current position
// and the number of records
txtRecordPosition.Text =
(objCurrencyManager.Position + 1) +
" of " + objCurrencyManager.Count;
}


private void Form1_Load(object sender, EventArgs e)
{
// Add items to the combo box...
cboField.Items.Add("Last Name");
cboField.Items.Add("First Name");
٦٥٦
cboField.Items.Add("Book Title");
cboField.Items.Add("Price");
// Make the first item selected...
cboField.SelectedIndex = 0;
// Fill the DataSet and bind the fields...
FillDataSetAndView();
BindFields();
// Show the current record position...
ShowPosition();
}







private void btnMoveFirst_Click(object sender, EventArgs e)
{
// Set the record position to the first record...
objCurrencyManager.Position = 0;
// Show the current record position...
ShowPosition();
}
private void btnMovePrevious_Click(object sender,
EventArgs e)
{
// Move to the previous record...
objCurrencyManager.Position -= 1;
// Show the current record position...
ShowPosition();
}
private void btnMoveNext_Click(object sender, EventArgs e)
{
// Move to the next record...
objCurrencyManager.Position += 1;
//Show the current record position...
ShowPosition();
}

private void btnMoveLast_Click(object sender, EventArgs e)
{
// Set the record position to the last record...
objCurrencyManager.Position =
objCurrencyManager.Count - 1;
// Show the current record position...
ShowPosition();
}


دیگه از این کاملتر نمیشد.

maryam_87
شنبه 16 مرداد 1389, 08:57 صبح
دوست عزیز من این کد شما رو نوشتم
ولی یه مشکل عنده با تابع fill دارم
وقتی توی دستور sql توی قسمت شرط یکی از فیلدهارو با یک متغیر مقایسه می کنم خطای تعریف متغیر رو میده در صورتی که من از اون متغیر در جای ذیگه برنامه استفاده کردم و مقدار رو بر می گردونه
خطا

Must declare the scalar variable "@uid".

کدsql

"SELECT name , family " +
"FROM personel " +
"where code_personeli=@uid";
ممنون میشم کمکم کنید

Rocker
شنبه 16 مرداد 1389, 09:15 صبح
شما احتمالا تو پاس کردن پارامتر uid@ داری یه جا اشتباه میکنی قبل از اینکه دستور select رو اجرا کنی با دستوری مشابه زیر باید پارامتر uid@ رو مقدار بدی:

objSqlCommand.Parameters.AddWithValue(@uid,12)

کد قبلیا به دردتون خورد ؟؟؟؟

maryam_87
شنبه 16 مرداد 1389, 09:33 صبح
public partial class Form1: Form
{
public string uid;

private const string _CommandText =
"SELECT name , family " +
"FROM personel " +
"where code_personeli=@uid";
private const string _ConnectionString =
"Data Source=.;Initial Catalog=farakhan;Integrated Security=True";
SqlConnection objConnection;
SqlDataAdapter objDataAdapter;
DataSet objDataSet;
DataView objDataView;
CurrencyManager objCurrencyManager;

public Form1()
{
objConnection = new SqlConnection(_ConnectionString);
objDataAdapter = new SqlDataAdapter(
_CommandText, objConnection);
InitializeComponent();
}
private void FillDataSetAndView()
{
SqlCommand objSqlCommand = new SqlCommand();
objSqlCommand.Parameters.AddWithValue(@uid,123);
objDataSet = new DataSet();
objDataAdapter.Fill(objDataSet, "personel");
objDataView = new DataView(
objDataSet.Tables["personel"]);
objCurrencyManager = (CurrencyManager)(
this.BindingContext[objDataView]);
}

private void BindFields()
{
textBox1.DataBindings.Clear();
textBox3.DataBindings.Clear();
textBox1.DataBindings.Add("text", objDataView, "name");
textBox3.DataBindings.Add("text", objDataView, "family");
}

private void button2_Click_1(object sender, EventArgs e)
{
dataaccesslayer da = new dataaccesslayer();
da.disconnect();
Application.Exit();
}

private void Form1_Load_1(object sender, EventArgs e)
{
textBox13.Text = DateTime.Now.ToString();
textBox2.Text = uid ;
FillDataSetAndView();
BindFields();
objConnection.Open();
objConnection.Close();
}
دیگه الان میزنم زیر گریه من نمی دونم این چه ایرادی داره !!!!!:عصبانی++::گریه::عصبانی++:

Rocker
شنبه 16 مرداد 1389, 09:41 صبح
public partial class Form1: Form
{
public string uid;

private const string _CommandText =
"SELECT name , family " +
"FROM personel " +
"where code_personeli=@uid";
private const string _ConnectionString =
"Data Source=.;Initial Catalog=farakhan;Integrated Security=True";
SqlConnection objConnection;
SqlDataAdapter objDataAdapter;
DataSet objDataSet;
DataView objDataView;
CurrencyManager objCurrencyManager;

public Form1()
{
objConnection = new SqlConnection(_ConnectionString);
objDataAdapter = new SqlDataAdapter(
_CommandText, objConnection);
InitializeComponent();
}
private void FillDataSetAndView()
{
SqlCommand objSqlCommand = new SqlCommand();
objSqlCommand.Parameters.AddWithValue(@uid,123);
objDataSet = new DataSet();
objDataAdapter.Fill(objDataSet, "personel");
objDataView = new DataView(
objDataSet.Tables["personel"]);
objCurrencyManager = (CurrencyManager)(
this.BindingContext[objDataView]);
}

private void BindFields()
{
textBox1.DataBindings.Clear();
textBox3.DataBindings.Clear();
textBox1.DataBindings.Add("text", objDataView, "name");
textBox3.DataBindings.Add("text", objDataView, "family");
}

private void button2_Click_1(object sender, EventArgs e)
{
dataaccesslayer da = new dataaccesslayer();
da.disconnect();
Application.Exit();
}

private void Form1_Load_1(object sender, EventArgs e)
{
textBox13.Text = DateTime.Now.ToString();
textBox2.Text = uid ;
FillDataSetAndView();
BindFields();
objConnection.Open();
objConnection.Close();
}دیگه الان میزنم زیر گریه من نمی دونم این چه ایرادی داره !!!!!:عصبانی++::گریه::عصبانی++:

خوب دختر خوب چرا برای DataAdapter سلکت کامند (SelectCommand) درست نکردی.
در ضمن کوئری سلکت رو باید به کامند تکست همین سلکت کامند مربوط به دیتاادپترت بدی.

maryam_87
شنبه 16 مرداد 1389, 09:55 صبح
خوب دختر خوب چرا برای DataAdapter سلکت کامند (SelectCommand) درست نکردی.
در ضمن کوئری سلکت رو باید به کامند تکست همین سلکت کامند مربوط به دیتاادپترت بدی.
:خجالت:مرسی

maryam_87
شنبه 16 مرداد 1389, 10:10 صبح
objDataAdapter.SelectCommand = objConnection.CreateCommand();
objDataAdapter.SelectCommand.CommandText = _CommandText;
منظور شما همینه دیگه؟؟!!!!؟؟؟؟

Rocker
شنبه 16 مرداد 1389, 11:39 صبح
objDataAdapter.SelectCommand = objConnection.CreateCommand();
objDataAdapter.SelectCommand.CommandText = _CommandText; منظور شما همینه دیگه؟؟!!!!؟؟؟؟
این بهتره :


SqlCommand objCommand = new SqlCommand();
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
objCommand.Connection = objConnection;
objCommand.CommandText = _CommandText;
objDataAdapter.SelectCommand = objCommand;