 |
|
รบกวนดูวิธีการ check ค่า gridview โดยการวนลูปบรรทัดแรกถึงบรรทัดสุด้ายนำไปเช็คกับตารางใน database ถ้าตรงกันให้แจ้งซ้ำด้วยครับ |
|
 |
|
|
 |
 |
|
ติดตรงไหนครับ แจ้ง error ว่าอะไร
จากที่ดูแบบหยาบๆ
line 6: i เป็นตัวแปรที่ใช้สำหรับ Column แต่ทำไมเอาไปใช้กับเมธอด Rows() แล้ว row จาก foreach มีไว้ทำอะไรครับ
line 9: ds1 ให้เดาน่าจะหมายถึง Dataset ถ้าใช่แล้วสร้างไว้ตรงไหน
ลองเปลี่ยน query จาก select * เป็น select count(*) แล้วใช้ ExecuteReader() หรือ ExecuteScalar() ดูหรือยังครับ
|
 |
 |
 |
 |
Date :
2019-07-04 18:13:46 |
By :
PhrayaDev |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
column ไม่ต้อง loop คุณจะทำอะไรกับทุก cell หรือเปล่า
เอาแค่ ข้อมูลเฉพาะ cell มาตรวจสอบ
และการอ้างตัวแปร ก็ไม่จำเป็นต้องอ้างจาก ต้นตอแล้ว เอาตัวแปรที่ ผ่านค่ามาใช้ได้เลย
foreach(DataGridView row in dgv2.Rows)
var id = row.Cells[ตำแหน่งที่ต้องการ].value;
|
ประวัติการแก้ไข 2019-07-05 07:18:28
 |
 |
 |
 |
Date :
2019-07-05 07:17:51 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (C#)
foreach(DataGridView row in dgv2.Rows)
{
for(int i = 0; i < dgv2.Columns.Count; i++)
{
cmd1 = new SqlCommand("select * from Cometowork1 where Empid=@Empid and Date=@Date", con);
cmd1.Parameters.AddWithValue("@Empid", Convert.ToString(dgv2.Rows[i].Cells[0].Value ?? DBNull.Value));
cmd1.Parameters.AddWithValue("@Date", dtp1.Text);
SqlDataAdapter da1 = new SqlDataAdapter(cmd1);
da1.Fill(ds1);
int i = ds1.Tables[0].Rows.Count;
if (i > 0)
{
DialogResult result = MessageBox.Show("ข้อมูลซ้ำโปรดตรวจสอบ", "ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Error);
ds1.Clear();
}
else
วิธีการคิด/วิธีการเขียนโปรแกรมของคุณผิดหมด อยู่อนุบาล 1 ในขุมนรก ยังไม่ได้เลย ทำได้อย่างเดียว อ้าปากแล้วรอแม่เขี่ยหัวนมให้ตรงปาก
ให้เอาไปคิดเป็นการบ้าน 1 วินาที Transactions เป็นล้านฯ รายการ เขาทำกันอย่างไร?
--- คุณโชคร้าย เขาไม่บอกคุณ แต่เขาบอกผม (ผมโชคดี)
|
 |
 |
 |
 |
Date :
2019-07-05 13:12:50 |
By :
xxx |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
@K-YON, ALL
ลูกศิษย์มันมีข้อสงสัย ก็เลยยกตัวอย่างมาให้ดู (พ.ศ. 2533 ก่อนหน้านั้นก็เคยเขียน)
MySQL 5.xx.xx VS SQLServer 2008/etc... Pass String Array To Stored Procedure (17/06/2553)
ส่งค่าไปประมาณนี้ 1, 2, 3, 4, 5
จริงฯแล้วผมให้เขาดู Unix/Linux/Windows และ HMI/PLC-CNC/SCADA/IoT/etc...
คิดว่า Mobile First (Web App/Windows App --- ไม่อยู่ในสายตา)
Code (SQL)
USE [YourDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID ( '[dbo].[msrFormPerm_usp01]', 'P' ) IS NOT NULL
DROP PROCEDURE [dbo].[msrFormPerm_usp01]
GO
CREATE PROCEDURE [dbo].[msrFormPerm_usp01]
(
@PageID AS int = 0,
@RoleIDc AS nvarchar(MAX) = '',
@UserID AS int = 0
)
AS
BEGIN
SET NOCOUNT ON ;
DECLARE @strSQL AS nvarchar(MAX) ='' ;
SET @strSQL = 'SELECT c.ACL,
0 As Flag,
0 As Priority
FROM msrFormPerm c WHERE c.PageID ='
+ CAST(@PageID AS varchar)
+ ' '
+ 'AND (c.RoleID = 0 OR c.RoleID IS NULL) AND c.UserID ='
+ ' '
+ CAST(@UserID AS varchar)
+ ' '
+ 'AND c.IsActive = 1'
+ ' '
+ 'UNION ALL'
+ ' '
+ 'SELECT a.ACL,
1 As Flag,
b.Priority
FROM msrFormPerm a INNER JOIN msrRoles b ON a.RoleID = b.RoleID
WHERE a.PageID ='
+ ' '
+ CAST(@PageID AS varchar)
+ ' '
+ 'AND a.RoleID IN('
+ @RoleIDc
+ ') '
+ 'AND (a.UserID = 0 OR a.UserID IS NULL) AND a.IsActive = 1 AND b.IsActive = 1' ;
EXEC sp_executesql @strSQL ;
END
GO
|
 |
 |
 |
 |
Date :
2019-07-08 09:21:23 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันนี้เป็น MySQL/อื่นฯ มันก็ไม่แตกต่างกันอทิเช่น ORACLE/DB2/etc...
(ยกตัวอย่างแค่ พื้นฐาน กลัวจะไม่เข้าใจ)
Code (SQL)
-- =============================================
-- Author: Herudoy
-- Create date: 17 มิถุนายน พ.ศ. 2553
-- Description: SQLServer 2008 Express
-- (การผ่านค่า String Array ให้กับ Stored Procedure)
-- =============================================
DROP PROCEDURE IF EXISTS wsdb.msrFormPerm_usp01;
CREATE PROCEDURE wsdb.`msrFormPerm_usp01`(IN `PageID` int, IN `RoleIDc` varchar(20000), IN `UserID` int)
READS SQL DATA
BEGIN
SET @strSQL = CONCAT('SELECT c.ACL,
0 As Flag,
0 As Priority
FROM msrFormPerm c WHERE c.PageID ='
, PageID
, ' '
, 'AND (c.RoleID = 0 OR c.RoleID IS NULL) AND c.UserID ='
, ' '
, UserID
, ' '
, 'AND c.IsActive = 1'
, ' '
, 'UNION ALL'
, ' '
, 'SELECT a.ACL,
1 As Flag,
b.Priority
FROM msrFormPerm a INNER JOIN msrRoles b ON a.RoleID = b.RoleID
WHERE a.PageID ='
, ' '
, PageID
, ' '
, 'AND a.RoleID IN('
, RoleIDc
, ') '
, 'AND (a.UserID = 0 OR a.UserID IS NULL) AND a.IsActive = 1 AND b.IsActive = 1') ;
PREPARE stmt FROM @strSQL ;
EXECUTE stmt ;
DEALLOCATE PREPARE stmt ;
END;
|
 |
 |
 |
 |
Date :
2019-07-08 09:31:24 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไอ้เด็กเมื่อวานซืนเขียนให้ผมดู เจ้า xxx ทุกวันนี้มันใช้ C# 8 เขียน async/await บน void main ได้
Code (JavaScript)
function doAjax() {
$.ajax({
url: ajaxurl,
type: 'POST',
data: {
stuff: "here"
},
success: function (data) {
//wacky nested anonymous callbacks go here
var something_but_not_really = data;
},
error: function (jqXHR, textStatus, errorThrown) {
// Empty most of the time...
}
});
return something_but_not_really
}
async function doAjax(args) {
const result = await $.ajax({
url: ajaxurl,
type: 'POST',
data: args
});
return result;
}
async function doAjax(args) {
let result;
try {
result = await $.ajax({
url: ajaxurl,
type: 'POST',
data: args
});
return result;
} catch (error) {
console.error(error);
}
}
//Method 1
const stuff = await doAjax();
//Method 2
doAjax().then((data) => doStuff(data))
|
 |
 |
 |
 |
Date :
2019-07-08 10:19:58 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|