PDA

View Full Version : هم خواندن و هم نوشتن



ealireza
یک شنبه 07 فروردین 1384, 15:34 عصر
اگر قبلا با ASP کار کرده باشید در ADO میشد اینطوری تعریف کرد

من در دات نت چیزی برا این پیدا نکردم :evil2:

دقیقا میخواهم کار زیر رو با دات نت انجام بدم ..



ADO.Open strsql,Strcon,3,3
Name=Ado("Name")
If Isnull(Name) Then
Ado("Name") = "Alireza"
Ado.Update()
End if
Ado.Close

حالا اگه میشه این کد رو به ASP.net البته VB بگید :mrgreen:

مرسی[/code]

Behrouz_Rad
یک شنبه 07 فروردین 1384, 20:23 عصر
Dim MyCnn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyDB.mdb;")
Dim MyAdapter As New OleDbDataAdapter("Select * From MyTable", MyCnn)
Dim MyBuilder As New OleDbCommandBuilder(MyAdapter)
Dim MyDataSet As DataSet = New DataSet
MyAdapter.Fill(MyDataSet, "MyTable")
Dim MyDataTable As DataTable = MyDataSet.Tables("MyTable")
Dim MyDataRow As DataRow = MyDataTable.Rows(0)
If MyDataRow.IsNull("name") Then
MyDataRow.Item("name") = "AliReza"
MyAdapter.Update(MyDataSet, "MyTable")
End If
MyCnn.Close()


به عنوان یک نکته مهم در ساخت یافتگی برنامه، پیشنهاد می کنم تا به جای استفاده از نام ستون مورد نظر در بانک های اطلاعاتی، از اندیس ستون مورد نظر استفاده کنید.
به دلیل اینکه پرووایدر ADO.NET در HashTable به دنبال نام متناظر ذکر شده برای دستیابی به فیلد مورد نظر می گردد که از نظر زمانی مقداری وقت گیر است اما در صورت ذکر اندیس ستون، به صورت مستقیم به ستون مورد نظر در HashTable مراجعه می کند. (افزایش سرعت دسترسی به میزان 30 درصد)

موفق باشید.

ealireza
دوشنبه 08 فروردین 1384, 01:17 صبح
Dim MyCnn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyDB.mdb;")
Dim MyAdapter As New OleDbDataAdapter("Select * From MyTable", MyCnn)
Dim MyBuilder As New OleDbCommandBuilder(MyAdapter)
Dim MyDataSet As DataSet = New DataSet
MyAdapter.Fill(MyDataSet, "MyTable")
Dim MyDataTable As DataTable = MyDataSet.Tables("MyTable")
Dim MyDataRow As DataRow = MyDataTable.Rows(0)
If MyDataRow.IsNull("name") Then
MyDataRow.Item("name") = "AliReza"
MyAdapter.Update(MyDataSet, "MyTable")
End If
MyCnn.Close()


به عنوان یک نکته مهم در ساخت یافتگی برنامه، پیشنهاد می کنم تا به جای استفاده از نام ستون مورد نظر در بانک های اطلاعاتی، از اندیس ستون مورد نظر استفاده کنید.
به دلیل اینکه پرووایدر ADO.NET در HashTable به دنبال نام متناظر ذکر شده برای دستیابی به فیلد مورد نظر می گردد که از نظر زمانی مقداری وقت گیر است اما در صورت ذکر اندیس ستون، به صورت مستقیم به ستون مورد نظر در HashTable مراجعه می کند. (افزایش سرعت دسترسی به میزان 30 درصد)

موفق باشید.دستت درد نکنه :mrgreen:

منظورت این بود ؟

Select name,famel,tel From MyTable

به نظر شما استفاده از همین روش بهتره یا همه چیزو با DATAreader بخونیم و بعد تک تک بهش EXECUTE از نوع Scaler داد :گیج:

اگه میشه نظر خودتون رو هم بگید :mrgreen:

با تشکر
علیرضا

Behrouz_Rad
دوشنبه 08 فروردین 1384, 01:53 صبح
خیر منظورم خط دوم در شرط IF بود.


MyDataRow.Item("name") = "AliReza"

تبدیل بشه به:


MyDataRow.Item(0) = "AliReza"


به نظر شما استفاده از همین روش بهتره یا همه چیزو با DATAreader بخونیم و بعد تک تک بهش EXECUTE از نوع Scaler داد
جای دیگه همچین چیزی رو مطرح نکنید. همون چیزی که بنده نوشتم رو استفاده کنید.
موفق باشید.

ealireza
دوشنبه 08 فروردین 1384, 12:45 عصر
مرسی میشه معادل Addnew رو هم بگید ...
مرسی

Behrouz_Rad
دوشنبه 08 فروردین 1384, 13:42 عصر
Dim MyRow As DataRow = MyDataTable.NewRow( )
MyRow("MyField1") = "MyValue1"
MyRow("MyField2") = "MyValue2"
MyDataTable.Rows.Add(MyRow)

پیشنهاد می کنم کتاب Moving From ADO to ADO.NET for Beginers رو حتما مطالعه بفرمایید.
موفق باشید.