PDA

View Full Version : سوال: دسترسی به اطلاعات پایگاه داده



comp_j
سه شنبه 06 مرداد 1388, 20:39 عصر
سلام
من می خوام مقدار یه متغیره رو با یکی از ستون های پایگاه داده (SQL Server 2005)مقایسه کنم .
و اگر مقدار متغییر با مقدار فیلد مورد نظر برابر بود مقدار آن فیلد رو تغییر بدم.
برای انجام اینکار چکار باید بکنم؟

milade
سه شنبه 06 مرداد 1388, 21:19 عصر
سلام
خوب مقدار رو با یه DataReader بخون و با هرچی میخوای مقایسه کن ! اگه برابر بود Update کن :D
یه جوریه سوالت ...
کجای این کار مشکل داری ؟

comp_j
سه شنبه 06 مرداد 1388, 22:35 عصر
با اجازه میلاد جان من ادامه جمله شو می نویسم :لبخند:
یه جوریه سوالت ... (آخه این دیگه چه خنگیه نه گوگل می دونه چیه نه برنامه نویسی ((; )

تقریبا کارو تموم کردم فقط یه مشکل توی Converting در قطعه کد زیر پیش آمده.



string id = reader.GetString(reader.GetOrdinal("ID"));


فیلد ID از نوع Int هست.
Error زیر به وجود آمده :

Unable to cast object of type 'System.Int32' to type 'System.String'.

اگه دوباره سوالم یه جوری نیست بهم جواب بدین !

comp_j
سه شنبه 06 مرداد 1388, 23:17 عصر
با تشکر از توجهتون مشکل مذکور نیز رفع گشت!



int id = reader.GetInt32 (reader.GetOrdinal("G#"));

vahidarjmand
چهارشنبه 07 مرداد 1388, 02:54 صبح
سلام
من یک مشکل در مورد فرمم دارم
مشکل من اینهکه وقتی id مورد نظر را برای پاک کردن در textbox می نویسم id را از database پاک نمی کند error هم نمی دهد این هم کدش


Protected Sub delete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles delete.Click
Dim mycn As New SqlConnection
mycn.ConnectionString = "Data Source=VAHID-ARJMAND\SQLEXPRESS;Initial Catalog=ciw;Integrated Security=True"
mycn.Open()

Dim mycmd As New SqlCommand
mycmd.Connection = mycn
Dim myred As SqlDataReader

Dim cmd As New SqlCommand
cmd.Connection = mycn
Dim red As SqlDataReader
cmd.CommandText = "select id from stud"
red = cmd.ExecuteReader

Dim text As String
text = TextBox18.Text

Do While red.Read()
If text = red.GetString(red.GetOrdinal("id")) Then
mycmd.CommandText = "delete from stud where id='" + TextBox18.Text + "'"
myred = mycmd.ExecuteReader
Label1.Text = "id delete"
Else : Label1.Text = "id is not available"
End If
Loop


mycn.Close()
End Sub

comp_j
چهارشنبه 07 مرداد 1388, 02:59 صبح
شرمنده که همش مزاحمتون می شم !
یه مورد دیگه ای پیش آمد و آن هم اینه که می خوام به اطلاعات آخرین رکورد جدولم توی ایگاه داده دسترسی داشته باشم.
برای این کار باید چیکار بکنم؟ سریعترین راه چیه؟
تنها چیزی که به ذهنم میرسه کد زیره :


SELECT ID from MyTable Order By ID DESC

حالا برای این که به اطلاعات query بالا دسترسی پیدا کنم چیکار باید کرد؟
یه راحل اینه که این query رو به یه GridView بایند(Bind) کنم سپس اطلاعات
رو از Gridview بازیابی کنم. البته فکر نمی کنم این راحل خوب باشه.
اگه شما راحل بهتری دارید ممنون می شم که در میان بگذارید.

milade
چهارشنبه 07 مرداد 1388, 10:14 صبح
Select Last(id) as comp_j From mytable

comp_j
چهارشنبه 07 مرداد 1388, 19:40 عصر
Select Last(id) as comp_j From mytable


فکر کنم Last جز دستورات SQl نیست و انشاالله مسولان امر قصد دارن که در سال 2015 تغییرات درخواستی شما رو اعمال کنن. :لبخند:

milade
چهارشنبه 07 مرداد 1388, 20:09 عصر
سلام
اره ..
جدیداً گیر میده ... :D
اما قبلاً بوده :
http://www.google.com/search?client=opera&rls=en&hl=fa&q=sql%2Blast&sourceid=opera&ie=utf-8&oe=utf-8

Select max(id) as fozol from tbl_x