public string CreatedBy { get; set;}
public List
public class Answer
{
public string Detail{get; set;}
public string AnswerBy {get; set;} }
// เวลาใช้ก็แบบนี้
Question
จำไม่ได้ทำไมไม่จด !!??
Administration Service
http://servername/vti_adm/admin.asmx
ID - FOLDER (extra info) - Configurations
0 - GLOBAL (SetupPath=global) - "Global template" 1 - STS - "windows SharePoint Services Site", "Team Site", "Blank Site", "Document Workspace" 2 - MPS - "Basic Meeting Workspace", "Blank Meeting Workspace", "Decision Meeting Workspace", "Social Meeting Workspace", "Multipage Meeting Workspace" 3 - CENTRALADMIN - "Central Admin Site" 4 - WIKI - "Wiki Site" 7 - BDR - "Document Center" 9 - BLOG - "Blog" 20 - SPS (OBSOLETE) - "SharePoint Portal Server Site" 21 - SPSPERS - "SharePoint Portal Server Personal Space" 22 - SPSMSITE - "Personalization Site" 30 - SPSTOC (OBSOLETE) - "Contents area Template" 31 - SPSTOPIC (OBSOLETE) - "Topic area template" 32 - SPSNEWS (OBSOLETE) - "News area template" 33 - SPSNHOME (SubWebOnly) - "News Home template" 34 - SPSSITES - "Site Directory area template" 36 - SPSCOMMU (OBSOLETE) - "Community area template" 38 - SPSREPORTCENTER - "Report Center Site" 39 - CMSPUBLISHING (SetupPath=SiteTemplates\PUBLISHING) - "Publishing and Team Collaboration Site" 40 - OSRV (SetupPath=SiteTemplates\OSRV) - "Shared Services Administration Site" 47 - SPSPORTAL - "Corporate Intranet Site" 50 - SRCHCEN - "Search Center" 51 - PROFILES - "Profiles" 52 - BLANKINTERNETCONTAINER - "Internet Presence Web Site" 53 - BLANKINTERNET - "Publishing Site", "Press Releases Site", "Publishing Site" 54 - SPSMSITEHOST - "My Site Host" 90 - SRCHCENTERLITE (SetupPath=SiteTemplates\SRCHCENTERLITE) - "Search Center Lite" 6221 - PWA (SetupPath=SiteTemplates\PWA) - "Project Web Access Site" 6215 - PWS (SetupPath=SiteTemplates\PWS) - "Project Workspace" 14483 - OFFILE - "Records Repository", "Records Repository"
Ref : http://blogs.msdn.com/dwinter/archive/2006/07/07/659613.aspx
If you place A:hover before A:link or A:visited. The property in A:hover will not be display.
Private Sub btnGentoDb_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGentoDb.Click
Me.bgw.RunWorkerAsync(.dgv.Rows.Count - 1) '---- ส่งจำนวนรอบ หรือไม่ส่งก็ว่างไว้
End Sub
Private Sub bgw_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgw.DoWork
Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
'เรียก แบบ Function ให้เอา ผลลัพธ์ ใส่ให้ e.result ด้วย
' e.Result = Function(parameter)
'เรียกแบบ Sub
Me.AppendData(e.Argument, worker, e) <<<<<< ไปเรียก Method ที่ทำการประมวลผลเช่นดึงค่ามาจาก Db
End Sub
Private Sub bgw_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bgw.ProgressChanged
'ทำงานหลัง จากมีการเรียก wk.ReportProgress(Pvalue)
'แสดงผล ความก้าวหน้าการทำงาน
pgb.Value = e.ProgressPercentage
End Sub
Private Sub bgw_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bgw.RunWorkerCompleted
If Not (e.Error Is Nothing) Then
'ทำงานเมื่อเกิด exception ทำให้ การทำงานหยุด
MessageBox.Show(e.Error.Message.ToString, " Error ", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf e.Cancelled Then
' ทำงานหลัง เรียก CancelAsync.
MessageBox.Show(" Cancelled")
Else
'กรณี ปกติ ทำงานเสร็จหมดแล้ว มาจบที่ตรงนี้
'ให้กำหนดว่า(เมื่อทำงานเสร็จแล้วให้ทำอะไร)
' Finally, handle the case where the operation succeeded.
'ก็แค่บอกว่า ทำเสร็จ
Me.btnGentoDb.Enabled = True
End If
End Sub
Special Thanks ..
Gf Board Gf Minilab V.1ตอบ
MESSAGE #18854 (อ่าน 158 ครั้ง) Using .... End Using ใช้ยังไงครับ Using .... End Using ใช้ยังไงครับ กับ Try ... Catch ... End Try
ใช้ต่างกันยังไงครับ
ขอขคุณครับ ปอ
-----------------------
Using จะทำการ Dispose ตัวแปร command ให้อัตโนมัติครับ
ส่วน Try .. Catch ใช้ดักเมื่อเกิด throw exception
tony
----------------------
Using sample
Using conn As New SqlConnection(dsn) Using cmd As New SqlCommand("SELECT * FROM Employees", conn) conn.Open() Using rdr As SqlDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine(rdr(0)) End While End Using End Using End Using Nine (นาย) -------------------- ต้วอย่าง แบบไม่ใช้ Using Dim x2 As New Employee("x2") x2.Name = "test"
If (TypeOf x2 Is IDisposable) Then DirectCast(x2, IDisposable).Dispose() End If แบบใช้ Using Using x3 As New Employee("x3") x3.Name = "test" End Using
Iwis -------------------------------
Using cn1 As New SqlConnection(My.Settings.NorthwindConnectionString), _ cmd1 As New SqlCommand(sql1, cn1) cn1.Open() Dim reader As DataReader = cmd1.ExecuteReader() Do While (reader.Read()) Dim sql2 As String sql2 = "...." Using cn2 As New SqlConnection(My.Settings.NorthwindConnectionString), _ cmd2 As New SqlCommand(sql2, cn2) cn2.Open() cmd2.ExecuteNonQuery() End Using Loop reader.Close End Using surrealist ---------------------- Using da As New SqlDataAdapter(sql, cn) Dim cmd As SqlCommand = da.SelectCommand cmd.Parameters.Add("@para1", SqlDbType.XYZ).Value = yourValue ' ---- เมื่อเราสั่ง Fill, DataAdapter จะเอา SelectCommand ของมันไป ExecuteReader ' ---- เพื่อนำข้อมูลที่ได้จาก DataReader มา "Fill" ใส่ DataSet/DataTable ที่เรากำหนด da.Fill(ds, "Table1") End Using ' ... Return(ds)
surrealist
ขอบคุณทุกๆท่านที่มีรายชื่อครับ ที่มา ณ www.greatfriends.biz
Try
checkOpen() << เกี่ยวกับเปิดปิดการ Connect
Dim sql As String = " select * From MyTable Where id = @id And Name Like @Name "
Dim cmd As New SqlCommand(sql, cn)
cmd.Parameters.Add("@id", SqlDbType.DateTime).Value = sdate
cmd.Parameters.Add("@Name", SqlDbType.DateTime).Value = edate
dr = cmd.ExecuteReader
If dr.HasRows = True Then
cmd.Dispose()
dr.Close()
Dim da As New SqlDataAdapter(sql, cn)
Dim ds As New DataSet
da.Fill(ds, "Test")
da.Dispose()
Return ds <<< คืนค่าออกไป
Else
cmd.Dispose()
dr.Close()
End If
Catch ex As Exception
MsgBox(ex.Message & " จาก Function Test, TestClass")
Finally
cn.Dispose()
End Try
คือ ถ้าเขียนแบบนี้ ตัว SqlDataAdapter มันจะไม่รู้จัก ตัว Parameter น่ะครับ
ไม่ทราบว่ามันสามารถเขียนได้หรือไม่ครับ
| MrSuthin | วันที่ส่ง: 3 ม.ค. 50 18:43 GMT+7 วันที่ปรับล่าสุด: 3 ม.ค. 50 19:50 GMT+7 |
| surrealist
ขอขอบคุณ อาจารย์ครับ |
Dim cnString As String = "Bla Bla Bla ::: OpenConnection Database"
Dim cn As New SqlConnection
With cn
If .State = ConnectionState.Open Then .Close()
cn.ConnectionString = cnString
.Open()
End With
Dim sql As String = " select top 500 "
sql &= " Ta.idTableAccount , Ta.InvNo , Ta.Amount ,"
sql &= " Ta.Volume,"
'---- Consignee "
sql &= " Cn.TitleConsignee "
sql &= " From TableAccount Ta "
sql &= " Inner Join Consignee Cn On Ta.Consignee = Cn.idConsignee "
Dim da As New SqlDataAdapter(Sql, cn)
Dim ds As New DataSet
da.Fill(ds, "ShowAllTableAccount")
Dim sqlSub As String = " select top 500 "
sqlSub &= " Tat.idTableAccount , "
sqlSub &= " Tat.Sendto , Tat.SendInv , Tat.Voy , "
sqlSub &= " Tat.etd, Tat.kaset , Tat.eu , "
sqlSub &= " Tat.isCancel,"
'---- Consignee & Country
sqlSub &= " Vs.NameVessel , de.country "
sqlSub &= " From TableAccount Tat "
sqlSub &= " inner join TableAccount TaSub On Tat.idTableAccount = TaSub.idTableAccount "
sqlSub &= " Inner Join Destination De On Tat.Country = De.idDestination "
sqlSub &= " Left Join Vessel Vs On Tat.Vessel = Vs.idVessel"
' da.SelectCommand.CommandText = sqlSub
Dim da1 As New SqlDataAdapter(sqlSub, cn)
' Dim ds1 As New DataSet
da1.Fill(ds, "ShowAllTableAccountSub")
Dim dcMaster, dcDetails As DataColumn
'--- อ่าน Field idTableAccountเก็บไว้ใน dcMaster
dcMaster = ds.Tables("ShowAllTableAccount").Columns("idTableAccount")
'--- อ่าน Field idTableAccountเก็บไว้ใน dcDetails
dcDetails = ds.Tables("ShowAllTableAccountSub").Columns("idTableAccount")
'--- สร้างความสัมพันธ์ และใส่ค่าไว้ที่ dl
Dim dl As New DataRelation("Details", dcMaster, dcDetails)
ds.Relations.Add(dl)
Dim dvm As New DataViewManager
dvm.DataSet = ds
Dim dvs As DataViewSetting
dvs = dvm.DataViewSettings("ShowAllTableAccount")
dvs.Sort = "idTableAccount"
dvs = dvm.DataViewSettings("ShowAllTableAccountSub")
dvs.Sort = "Consignee"
With FvAccount.dgvAcc
.ReadOnly = True
.DataSource = dvm
.DataMember = "ShowAllTableAccount"
End With
With FvAccount.subDgvAcc
.ReadOnly = True
.DataSource = dvm
.DataMember = "ShowAllTableAccount.idTableAccount"
End With
จะสังเกตุได้ว่า เรา Dim New DataAdpter และ Dataset แค่ครั้งแรกครั้งเดียว ส่วนครั้งที่สองนั้น เราสามารถใช้
DataAdapter ตัวเดิมได้ แล้ว จะต้องใช้ Dataset ตัวเดิม ห้าม Dim New เพราะใช้แล้ว Error ว่ามันไม่สามารถทำ
Relation กับตัว Dataset ที่ต่างกันได้ ( แปลมาว่างี้ )
ต่อมา มาเรื่องของ Ds.ReadXml เวลา Export File จากไหนๆก็ตาม ยกตัวอย่างจาก Access
Export File ออกมาแบบธรรมดาไม่ต้องเอา Schema ( จะมี Option ขั้นสูงฝัง Schema มากับ Data เลย )
เพราะถ้าฝังมาด้วย มันจะทำให้ ds.ReadXml อ่านไม่ได้
พออ่านได้เราก็เอา ds.ReadXml("d:/Test.xml") << หรือรับค่ามาจาก OpenFileDialogbox ก็ได้
แล้วก็ไป Binding ใส่ Control ต่างๆได้ ต่อ ไป การอ้างถึงก็คือ
Ds.Tables("ชื่อTable")
ข้อควรจำในการ Export File มาเป็น Dataset
**** ถ้ามี Column ตรงกับชื่อ Table มันจะทำให้การอ่านค่าผิดพลาด จะต้องไม่ให้ ชื่อ Column ไม่ซ้ำกับชื่อของ Table เด็ดขาด !!