PDA

View Full Version : سوال: دستورات استفاده از پروسیجری که خروجی داره



ayda.eslami
جمعه 05 آذر 1389, 14:56 عصر
سلام
خسته نباشین

من یه پروسیجر دارم که خروجی داره
می خوام توی جدولم بگرده و تعداد خرید هام رو بهم بگه!
و توی برنامه ام به تعداد خرید هام یه لیست باکس برام بسازه!
نمی دونم با چه کدی خروجی پروسیجرم رو بگیرم توی برنامه ام.
مرسی!

hadi-z
جمعه 05 آذر 1389, 15:16 عصر
سلام
اگه خروجی پروسیجر شما یک آرایه باشه خیلی راحت میتونید مقادیر اونو با یک حلقه تو listbox بریزید.


privait string[] pro()
{
string[] A;
//Return A;
}

Felony
جمعه 05 آذر 1389, 15:18 عصر
پروسیجر خروجی نداره مگر اینکه یه پارامتر به صورت ByRef بهش ارسال کنید و داخل روالتون مقدارش رو تغییر بدید ، اون Function هست که خروجی داره ، برای نوشتن و استفاده از Function ها در C#‎ به لینک زیر مراجعه کنید :

http://csharp.net-tutorials.com/basics/functions/

ayda.eslami
جمعه 05 آذر 1389, 15:25 عصر
پروسیجر خروجی نداره مگر اینکه یه پارامتر به صورت ByRef بهش ارسال کنید و داخل روالتون مقدارش رو تغییر بدید ، اون Function هست که خروجی داره ، برای نوشتن و استفاده از Function ها در C#‎‎ به لینک زیر مراجعه کنید :

http://csharp.net-tutorials.com/basics/functions/



تا اون جایی که من می دونم پروسیجر می تونه یه خروجی داشته باشه!
اما فقط یکی

ayda.eslami
جمعه 05 آذر 1389, 15:26 عصر
سلام
اگه خروجی پروسیجر شما یک آرایه باشه خیلی راحت میتونید مقادیر اونو با یک حلقه تو listbox بریزید.


privait string[] pro()
{
string[] A;
//Return A;
}


ممنون اما هیچی از کدتون نفهمیدم!!!!:عصبانی++:

hadi-z
جمعه 05 آذر 1389, 15:38 عصر
یک مثال:

public string[] sn = new string[14];


public void LoadSNFromChart()
{
string command = "Select name from chart";
cn.Open();
OleDbDataReader dr = cm.ExecuteReader();
for (int i = 0; i <= 14; i++)
{
if (dr.Read())
{
sn[i] = (dr["name"]).ToString();
}
}
}


for (int i = 0; i <= 14; i++)
{
if (dr.Read())
{
listbox1.Item[i] = sn[i];
}
}

ayda.eslami
جمعه 05 آذر 1389, 15:56 عصر
یک مثال:

public string[] sn = new string[14];


public void LoadSNFromChart()
{
string command = "Select name from chart";
cn.Open();
OleDbDataReader dr = cm.ExecuteReader();
for (int i = 0; i <= 14; i++)
{
if (dr.Read())
{
sn[i] = (dr["name"]).ToString();
}
}
}


for (int i = 0; i <= 14; i++)
{
if (dr.Read())
{
listbox1.Item[i] = sn[i];
}
}


من فکر می کنم سوالم رو کامل متوجه نشدین!
ببینین من کد دیتابیسم اینه در اصل

select count(buyer_code)
from invoice
where buyer_code=3

می خوام تعداد این سطر ها رو توی برنامه ام بگیرم!خروجی این کد مثلا 5 می شه!
می خوام این 5 رو توی برنامه ام بگیرم!
می تونم بریزم توی یه table اما فکر می کنم کار درستی نیس!فقط حل مشکل هس

hadi-z
جمعه 05 آذر 1389, 16:02 عصر
public string count ;


public void LoadSNFromChart()
{
string command = "selectcount(buyer_code)
from invoice
where buyer_code=3 As b";
cn.Open();
OleDbDataReader dr = cm.ExecuteReader();
if (dr.Read())
{
count= (dr["b"]).ToString();
}
}

فکر کنم این دیگه درست باشه.
البته string برای این کار خیلی بزرگه.
یه مثال ساده است دیگه!!!

ayda.eslami
جمعه 05 آذر 1389, 16:25 عصر
public string count ;


public void LoadSNFromChart()
{
string command = "selectcount(buyer_code)
from invoice
where buyer_code=3 As b";
cn.Open();
OleDbDataReader dr = cm.ExecuteReader();
if (dr.Read())
{
count= (dr["b"]).ToString();
}
}

فکر کنم این دیگه درست باشه.
البته string برای این کار خیلی بزرگه.
یه مثال ساده است دیگه!!!




دست شما درد نکنه هااا!
اما این جواب نمی ده :لبخند:
واسه خودتون جواب می ده؟؟
بعدش هم این b چیه این جا؟

hadi-z
جمعه 05 آذر 1389, 16:32 عصر
ببخشید
من یه اشتباه کوچیک کرده بودم:
درست شده ی اون خط اینه:

string command = "selectcount(buyer_code) As b
from invoice
where buyer_code=3";


As b یعنی باید مفدار count رو تو b بریزه.

ayda.eslami
جمعه 05 آذر 1389, 16:44 عصر
ببخشید
من یه اشتباه کوچیک کرده بودم:
درست شده ی اون خط اینه:

string command = "selectcount(buyer_code) As b
from invoice
where buyer_code=3";


As b یعنی باید مفدار count رو تو b بریزه.


باز هم نمی ششششششششششششششودددددددد
من با dataset کدامو می نویسم اصلا اشنایی ندارم با کدی که شما نوشتین!


بدون دیتا ست هم این روش (connected) بلد بودم که کد های شما رو تغییر دادم و نشد

SqlCommand cmd = new SqlCommand();
cmd.Connection = sc;
cmd.CommandText = "selectcount(buyer_code) As b from invoice where buyer_code=3";
cmd.CommandType = CommandType.Text;

sc.Open();
OleDbDataReader dr = cmd.ExecuteNonQuery();


if (dr.Read())
{
count= (dr["b"]).ToString();
}

hadi-z
جمعه 05 آذر 1389, 16:55 عصر
من با dataset کدامو می نویسم اصلا اشنایی ندارم با کدی که شما نوشتین!

فهمیدم چرا نمیشه.
من کد access مینویسم و شما sql
درستش اینه:


public void LoadFromDB()
{
SqlConnection cn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\MyDB.mdf;Integrated Security=True;User Instance=True");
string command = "select count(buyer_code) As b from invoice where buyer_code=3";
SqlCommand cm = new SqlCommand(command, cn);
cn.Open();
SqlDataReader dr = cm.ExecuteReader();
if (dr.Read())
{
count = dr["b"].ToString();
}
}

فقط نام db رو عوض کنید: MyDB.mdf

ayda.eslami
جمعه 05 آذر 1389, 17:13 عصر
[quote=hadi-z;1161238]
من با dataset کدامو می نویسم اصلا اشنایی ندارم با کدی که شما نوشتین!

فهمیدم چرا نمیشه.
من کد access مینویسم و شما sql
درستش اینه:

آقا دست شما درد نکنههههههههههههههه!!!!خدا خیرت بدهههههههههههههههههههه
مرسییییییییییییی