PDA

View Full Version : سوال: ذخیره نتیجه دستور SQL در متغیر



arty125
سه شنبه 26 آبان 1388, 12:51 عصر
با سلام و درود.
می خواستم بدونم چطور می شه نتیجه جمع حاصل از دستور SQL را در یک متغیر ذخیره کرد که بعد بتوانیم از ان استفاده نماییم.
به عنوان مثال فیلدی به نام Price وجود دارد که می خواهم مجموع آن را محاسبه کنم
Select Sum(Price) AS TotalPrice from Table1

و متغیری به نام Dim Tprice as Integer هم در محیط #C تعریف کرده ایم. می خواهم نتیجه این دستور Select را به این متغییر نسبت دهم. چطور می توانم همچین کاری انجام دهم؟

همچنین چطور می توانم در انتهای یک grid اماده در C#.Net سطری اضافه کنم که نتیجه این جمع را در آن نمایش دهد.

با تشکر از راهنمایی شما

Mostafa_Dindar
سه شنبه 26 آبان 1388, 13:12 عصر
البته در C#‎‎ كلمه كليدي Dim نداريم

اگر دستورات تنها شبيه "Select Sum(Price) AS TotalPrice from Table1" باشه ميتوني از مقدار خروجي
متد ExecuteScalar شي Commnd استفاده كني
بعبارتي

int retValue = cmd.ExecuteScalar();ولي اگر دستور Sql شما كارهاي ديگري هم انجام ميده بهتره Query خودتون رو داخل يك StoredProcedure بنويسين يك پارامتر از نوع Output تعريف كنين و داخل Query تون اونو مقدار هي كنين

موفق باشيد

arty125
سه شنبه 26 آبان 1388, 14:55 عصر
با تشکر از راهنماییتون
این کد من هست . خواستم ببینم کجای اون اشکال داره؟
Using connection As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Inetpub\wwwroot\gozaresh\db\D1.mdb;User Id=admin; Password=;")
Dim command As System.Data.OleDb.OleDbCommand = New System.Data.OleDb.OleDbCommand
connection.Open()
command.CommandText = "select sum(mablagh) as TotalM from Btb1"
Dim Tm As Long
Tm = command.ExecuteScalar()
MsgBox(Tm)

این پیغام خطا رو به من میده ExecuteScalar: Connection property has not been initialized.

مشکل کجاست؟

Mostafa_Dindar
سه شنبه 26 آبان 1388, 15:14 عصر
ميشه درست كد رو نشون بدي !؟ من نميتونم بفهمم چي به چيه . مخصوصا VB هم كه هست

arty125
سه شنبه 26 آبان 1388, 15:21 عصر
مشکل رو پیدا کردم مرسی از توجهت
این کد رو باید اضافه می کردم
command.connection = connection