Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > สอบถามการ Query ข้อมูลจาก databass sql server แบบมีเงื่อนไขหน่อยครับ



 

สอบถามการ Query ข้อมูลจาก databass sql server แบบมีเงื่อนไขหน่อยครับ

 



Topic : 131613



โพสกระทู้ ( 130 )
บทความ ( 0 )



สถานะออฟไลน์




ผมต้องการ query ข้อมูล จาก combobox และ DateTimePicker1 และ DateTimePicker2 ผมจะต้องเขียนอย่างงัยครับ หรือใช้ even อะไรครับ เวลาค้นข้อมูลตามชื่อใน combobox และเลือกวันที่เริ่มถึงวันที่สิ้นสุด แล้วให้ข้อมูลมาเลย หรือเลืก opject ตัวไหนก่อนก็ได้ภายใน 3 ตัวนี้แล้วข้อมูลมาตามที่เราเลือกครับ ตอนนี้ผมจะค้นหาชื่อและวันที่ ต้องไปเลือกวันที่เริ่มและวันที่สิ้นสุดก่อน แล้วค่อยไปเลื่อกชื่อถึงจะมาครับ ช่วยบอกหน่อยครับ ขอบคุณครับ

อันนี้โค๊ดที่ผมเขียนไว้เป็น sup เรียกใช้งาน

Code
Public Sub loaddata() sql = "Select * from HR_daywork where name='" & cbbEmployee.SelectedItem & "' AND datework BETWEEN '" & dtpStart.Value.ToString("yyyy/MM/dd") & "' AND '" & dtpEnd.Value.ToString("yyyy/MM/dd") & "'" DA = New SqlDataAdapter(sql, cn) DS = New DataSet DA.Fill(DS, "table") dgvTimework.DataSource = DS.Tables("table") End Sub


หน้าฟร์อมครับ
887



Tag : .NET, Ms SQL Server 2008, VB.NET, VS 2013 (.NET 4.x), VS 2015 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-07-25 14:35:10 By : ชรินทร์ View : 1864 Reply : 11
 

 

No. 1



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ใน vb หรือ C# หรือ msSQL จะมี sqlbuilder
ลองเล่นดูครับ

ถ้าใช้ vb หรือ C# ลองจิ้มๆๆๆ ใส่ค่าดู จะได้ประมาณนี้

1311



ในแง่ของวันที่อาจจะยุ่งยากหน่อย เพราะมันมี format ของวันทีด้วย ลองค่อยๆใช้ sqlbuilder รันดูจนกว่าจะพอใจ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-25 15:55:54 By : lamaka.tor
 


 

No. 2



โพสกระทู้ ( 130 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : lamaka.tor เมื่อวันที่ 2018-07-25 15:55:54
รายละเอียดของการตอบ ::
ไม่ใช่ครับ ผมต้องการเลือกชื่อและวันที่เริ่ม แล้วไปเลือกวันที่สิ้นสุดโดยใช้เม้าคลิ๊กวันที่ที่เราต้องการค้นหา แล้วข้อมูลมาเลยอ่ะครับ

ที่ผมเขียนไปให้ดูนี้ มันต้องเลือกวันที่เริ่มและสิ้นสุดก่อน แล้วค่อยมาเลือกชื่อ ถึงข้อมูลจะมาครับ ถ้าเราไปคลิ๊กเลือกที่ชื่อก่อน แล้วค่อยมาเลือกวันที่ ข้อมูลจะไม่มาครับ แต่จะมาเฉพาะชื่อที่เราเลิือกครับ (ผมอธิบายเข้าใจมั้ยอ่ะ555)


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-25 16:24:13 By : ชรินทร์
 

 

No. 3



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 2 เขียนโดย : ชรินทร์ เมื่อวันที่ 2018-07-25 16:24:13
รายละเอียดของการตอบ ::
งั้นแสดงว่า ตอนนี้ sql ไม่มีปัญหาใช่ไม๊ครับ

ถ้างั้น ใช้ if เพื่อตรวจสอบครับ

ตอนนี้โค้ด if ที่ใช้ในการเลือกเขียนว่ายังไงครับ

หรือไม่อาจจะดักจับเลยว่าถ้า cbbEmployee.text dtpStart.Value และ dtpEnd.Value มีข้อมูลครบทั้งหมด ถึงจะค้น
เช่น

Code (VB.NET)
Public Sub loaddata()
If cbbEmployee.Test <> String.Empty And dtpStart.Value.ToString() <> String.Empty And dtpEnd.Value.ToString() Then
        sql = "Select * from HR_daywork where name='" & cbbEmployee.SelectedItem & "' AND datework BETWEEN '" & dtpStart.Value.ToString("yyyy/MM/dd") & "' AND '" & dtpEnd.Value.ToString("yyyy/MM/dd") & "'"
        DA = New SqlDataAdapter(sql, cn)
        DS = New DataSet
        DA.Fill(DS, "table")
        dgvTimework.DataSource = DS.Tables("table")
End if

    End Sub


แบบนี้ ถ้า เรา เลือกวันที่ ไว้แล้ว เราก็จะสามารถเลือกรายชื่ออื่นขึ้นมาดูได้เลยโดยไม่ต้องมาเลือกวันที่ใหม่อีกครั้ง
หรือเราเลือกรายชื่อไว้แล้ว แต่อยากดูวันที่ช่วงอื่นก็ได้เช่นกัน


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-25 17:38:39 By : lamaka.tor
 


 

No. 4



โพสกระทู้ ( 130 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : lamaka.tor เมื่อวันที่ 2018-07-25 17:38:39
รายละเอียดของการตอบ ::

ตอบความคิดเห็นที่ : 3 เขียนโดย : lamaka.tor เมื่อวันที่ 2018-07-25 17:38:39
รายละเอียดของการตอบ ::
sql ไม่มีปัญหาครับ ใช่เลยผมต้องการให้เลือกชื่อก็ขึ้นขื่อมาเลยครับ พอเลือกวันเริ่มก็ให้ไปค้นวันเริ่มเลยครับ

ถ้าใช้ if ดักจะerrer แบบนี้ครับ คุณต่อ แก้อย่างงัยดีครับ ขอบคุณมากนะครับ คุณต่อช่วยผมหลายเคสแล้ว เดี๋ยวผมขอที่อยู่ด้วยนะครับ ผมส่งของขวัญเล็กๆน้อยไปให้ครับ

654


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-26 09:55:57 By : ชรินทร์
 


 

No. 5



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 4 เขียนโดย : ชรินทร์ เมื่อวันที่ 2018-07-26 09:55:57
รายละเอียดของการตอบ ::
ขอโทษด้วยครับ
ผมเขียนโค้ดผิด 5555
เพิ่ม <> String.Empty ด้วยครับ
Code (VB.NET)
If cbbEmployee.Test <> String.Empty And dtpStart.Value.ToString() <> String.Empty And dtpEnd.Value.ToString() <> String.EmptyThen


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-26 10:11:31 By : lamaka.tor
 


 

No. 6



โพสกระทู้ ( 130 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : lamaka.tor เมื่อวันที่ 2018-07-26 10:11:31
รายละเอียดของการตอบ ::
ไม่ได้ครับ คุณต่อ ถ้าเลือกชื่อใน combobox ก่อน แล้วไปเลือกวันที่เริ่ม และวันที่สิ้นสุดใน datetimepicker1 และ datetimepicker2 เราต้องกับมาเลือกชื่อใน combobox ใหม่ถึงจะมาอ่ะครับ อยากให้ เลือกชื่อแล้ว ไปเลือกวันที่ใน datetimepicker1 แล้วค้นข้อมูลเลยครับ ทำได้มั้ยครับ จะเขียนโค๊ดแบบไหนครับ หรือว่าใช้ even อะไรช่วยบอกหรือแนะนำหน่อยครับ คุณต่อ (อย่าลืมส่งที่อยู่ให้ผมด้วยนะครับคุณต่อ ผมจะส่งของขวัญเล็กๆน้อยๆไปให้ครับ คุณต่อช่วยผมหลายเคสแล้วที่ผมเห็น)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-26 11:15:32 By : ชรินทร์
 


 

No. 7



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 6 เขียนโดย : ชรินทร์ เมื่อวันที่ 2018-07-26 11:15:32
รายละเอียดของการตอบ ::
ดูโค้ดทั้งหมดที่เกี่ยวข้องหน่อยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-27 21:31:39 By : lamaka.tor
 


 

No. 8



โพสกระทู้ ( 9,556 )
บทความ ( 2 )



สถานะออฟไลน์


ตัวอย่าง เป็น c# ถ้าต้องการ vb แปลงเอาเอง
Code (C#)
private void all_textbox_KeyPress(object sender, KeyPressEventArgs e)
{
	if (e.KeyChar == (char)Keys.Return)
	{
		this.run();
	} 
}
private void run{
// length(fieldname)>0 เป็น condition เริ่มต้น เพื่อความสดวกในการเขียนโปรแกรม ไม่มีผลกับการค้น แต่มีผลกับ ไวยกรณ์
	string sqlstring = "select * from tablename where length(fieldname)>0 ";
	string x,y;
	if( (x=nmText.value.Trim()).length > 0) {
		sqlstring += " and {fieldname} = '"+x+"' ";
	}
	if( (x = stText.value.Trim()).length>0) {
		sqlstring += " and {fielddate} "+((y=enText.value.Trim()).length>0 ? "IN '"+ x +"' to '"+y : "= '"+x)+"' ";
	}
	//execute sql command and show list
}



ประวัติการแก้ไข
2018-07-28 15:59:16
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-28 15:57:32 By : Chaidhanan
 


 

No. 9



โพสกระทู้ ( 130 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : lamaka.tor เมื่อวันที่ 2018-07-27 21:31:39
รายละเอียดของการตอบ ::
ขอบคุณครับคุณต่อครับ โค๊ดหลัก กำลังเขียนได้แค่นี้ครับ ทั้งฟร์อมมีแค่นี้ครับ ไม่ได้ไม่เป็นรัยนะครับ ใช้ดักอย่างอื่นแทนยังได้อยู่ครับ
Imports System.Data.SqlClient
Public Class afrm_HR_export

Public Sub loaddata()

If cbbEmployee.Text <> String.Empty And dtpStart.Value.ToString("dd/MM/yyyy") <> String.Empty And dtpEnd.Value.ToString("dd/MM/yyyy") <> String.Empty Then
sql = "Select users_refid, name, lastname, datework, timein, statustime, timeout, statusout, timework, ot, timelad, statusleave from HR_daywork where name='" & cbbEmployee.SelectedItem & "' AND datework BETWEEN '" & dtpStart.Value.ToString("yyyy/MM/dd") & "' AND '" & dtpEnd.Value.ToString("yyyy/MM/dd") & "'"
DA = New SqlDataAdapter(sql, cn)
DS = New DataSet
DA.Fill(DS, "table")
dgvTimework.DataSource = DS.Tables("table")

End If

setupdatagrid()

End Sub

Public Sub sumcolumn()


End Sub


Public Sub setupdatagrid()

With dgvTimework

.Enabled = True
.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
.ColumnHeadersHeight = 32

.Columns(0).HeaderText = "ไอดี"
.Columns(0).Width = 90

.Columns(1).HeaderText = "ชื่อ"
.Columns(1).Width = 95

.Columns(2).HeaderText = "นามสกุล"
.Columns(2).Width = 95

.Columns(3).HeaderText = "วันที่"
.Columns(3).Width = 90

.Columns(4).HeaderText = "เวลาเข้า"
.Columns(4).Width = 90

.Columns(5).HeaderText = "สถานะเข้า"
.Columns(5).Width = 80

.Columns(6).HeaderText = "เวลาออก"
.Columns(6).Width = 89

.Columns(7).HeaderText = "สถานะออก"
.Columns(7).Width = 90

.Columns(8).HeaderText = "เวลารวม"
.Columns(8).Width = 90

.Columns(9).HeaderText = "OT"
.Columns(9).Width = 80

.Columns(10).HeaderText = "ส่วนต่างสาย"
.Columns(10).Width = 80

.Columns(11).HeaderText = "สถานะงาน"
.Columns(11).Width = 80

.Columns(0).Visible = False

.Columns(3).DefaultCellStyle.Format = "dd/MM/yyyy"


End With

For Each col As DataGridViewColumn In dgvTimework.Columns
col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
col.HeaderCell.Style.Font = New Font("Arial", 12.0F, FontStyle.Bold, GraphicsUnit.Pixel)
col.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Next

With dgvTimework
.DefaultCellStyle.BackColor = Color.AliceBlue
.AlternatingRowsDefaultCellStyle.BackColor = Color.LightBlue
End With

'lblCounts.Text = "รวมลงเวลาวันนี้: " & dgvEmployee.RowCount.ToString

End Sub
Private Sub afrm_HR_export_Load(sender As Object, e As EventArgs) Handles MyBase.Load

sql = "select user_name from HR_timework"
cmd_database_to_object(cbbEmployee)

End Sub

Private Sub cbbEmployee_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbbEmployee.SelectedIndexChanged

sql = "select users_refid from HR_timework where user_name like'" & cbbEmployee.SelectedItem & "'"
txtEmID.Text = cmd_excuteScalar().ToString
sql = "select user_name from HR_timework where user_name like'" & cbbEmployee.SelectedItem & "'"
txtName.Text = cmd_excuteScalar().ToString
sql = "select user_lastname from HR_timework where user_name like'" & cbbEmployee.SelectedItem & "'"
txtlastname.Text = cmd_excuteScalar().ToString

loaddata()

End Sub

Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
Me.Close()
End Sub

Private Sub dgvTimework_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles dgvTimework.CellFormatting
Dim i As Integer
Dim str1, str2, str3, str4, str5, str6, str7 As String
For i = 0 To dgvTimework.Rows.Count - 1

str1 = dgvTimework.Rows(i).Cells(5).Value
str2 = dgvTimework.Rows(i).Cells(7).Value.ToString
str3 = dgvTimework.Rows(i).Cells(5).Value.ToString
str4 = dgvTimework.Rows(i).Cells(5).Value.ToString
str5 = dgvTimework.Rows(i).Cells(5).Value.ToString
str6 = dgvTimework.Rows(i).Cells(5).Value.ToString
str7 = dgvTimework.Rows(i).Cells(5).Value.ToString

If str1 = "เข้าสาย" Then
'f Convert.ToDouble(str1) <= 50 Then
'Me.dgvEmployee.Rows(i).DefaultCellStyle.BackColor = Color.Yellow
'Me.dgvEmployee.Rows(i).DefaultCellStyle.ForeColor = Color.Red
dgvTimework(5, i).Style.ForeColor = Color.Red
dgvTimework(5, i).Style.BackColor = Color.Yellow
dgvTimework(4, i).Style.ForeColor = Color.Red

End If
If str2 = "ออกก่อนเวลา" Then
dgvTimework(7, i).Style.BackColor = Color.Yellow
dgvTimework(7, i).Style.ForeColor = Color.Red
dgvTimework(6, i).Style.ForeColor = Color.Red

End If
If str3 = "ลากิจ" Then
'f Convert.ToDouble(str1) <= 50 Then
Me.dgvTimework.Rows(i).DefaultCellStyle.BackColor = Color.Wheat
Me.dgvTimework.Rows(i).DefaultCellStyle.ForeColor = Color.Red

End If
If str4 = "ลาป่วย" Then
'f Convert.ToDouble(str1) <= 50 Then
Me.dgvTimework.Rows(i).DefaultCellStyle.BackColor = Color.Plum
Me.dgvTimework.Rows(i).DefaultCellStyle.ForeColor = Color.Red

End If
If str5 = "ลาพักร้อน" Then
'f Convert.ToDouble(str1) <= 50 Then
Me.dgvTimework.Rows(i).DefaultCellStyle.BackColor = Color.MediumSeaGreen
Me.dgvTimework.Rows(i).DefaultCellStyle.ForeColor = Color.Red

End If
If str6 = "ลาบวช" Then
'f Convert.ToDouble(str1) <= 50 Then
Me.dgvTimework.Rows(i).DefaultCellStyle.BackColor = Color.ForestGreen
Me.dgvTimework.Rows(i).DefaultCellStyle.ForeColor = Color.White

End If
If str7 = "ลาคลอด" Then
'f Convert.ToDouble(str1) <= 50 Then
Me.dgvTimework.Rows(i).DefaultCellStyle.BackColor = Color.DarkViolet
Me.dgvTimework.Rows(i).DefaultCellStyle.ForeColor = Color.White

End If
Next
End Sub
End Class

อันนี้หน้าฟร์อมครับ

478


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-30 10:38:47 By : ชรินทร์
 


 

No. 10



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

เอา loaddata() ไปใส่ใน valueChanged ของ datetimepicker ทั้ง 2 ตัวด้วยครับ

สรุป คือ

เมื่อ combobox เปลี่ยน หรือ datetimepicker1 เปลี่ยน หรือ datetimepicker2 เปลี่ยน
มันก็จะค้นให้เรา ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-30 11:12:03 By : lamaka.tor
 


 

No. 11



โพสกระทู้ ( 130 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : lamaka.tor เมื่อวันที่ 2018-07-30 11:12:03
รายละเอียดของการตอบ ::
ได้แล้วครับ ขอบคุณมากๆเลยครับ คุณต่อ เส้นผมบังภูเขา5555

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-07-30 13:07:50 By : ชรินทร์
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามการ Query ข้อมูลจาก databass sql server แบบมีเงื่อนไขหน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่