Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何将数据从一个表复制到另一个表?_Vb.net - Fatal编程技术网

Vb.net 如何将数据从一个表复制到另一个表?

Vb.net 如何将数据从一个表复制到另一个表?,vb.net,Vb.net,你能帮我更正下面的代码吗?我想在表1到表2中插入员工ID和姓名,以及label1中的日期和label2中的创建者。我不知道如何插入标签中的值 我的代码: cmd.CommandText = "INSERT INTO EMPINFO_DEL ([DATE],[CREATOR]) SELECT *, VALUES('" + Trim(Label1.Text) & "-" & Trim(Label2.Text) + "') FROM EMPINFO_TBL WHERE EMPID

你能帮我更正下面的代码吗?我想在表1到表2中插入员工ID和姓名,以及label1中的日期和label2中的创建者。我不知道如何插入标签中的值

我的代码:

cmd.CommandText = "INSERT INTO EMPINFO_DEL ([DATE],[CREATOR]) SELECT *, VALUES('" + Trim(Label1.Text) & "-" & Trim(Label2.Text) + "') FROM  EMPINFO_TBL  WHERE EMPID =" & UCase(Trim(Text1.Text)) & ""

Label1.Text=Mitchel 'Creator
Label2.Text=26Mar20 'Date
首先,标签控件用于显示数据,而不是存储数据。您不应该从标签中检索任何数据以便在其他地方使用。如果您有一个要使用的日期,那么应该将其存储在日期变量中。如果要显示该日期,则从该变量获取值,格式化并在标签中显示,但如果要将该值用于其他内容,则从变量获取,而不是从标签获取。造物主也是如此

对于SQL的查询部分,SELECT子句指定要检索的值。这通常涉及列名,但您也可以使用计算为适当值的其他表达式。在这种情况下,您应该通过参数传入日期和创建者,然后在SELECT子句中使用这些参数。然后,INSERT INTO子句指定要插入的所有列。未经测试,您的代码应该如下所示:

cmd.CommandText = "INSERT INTO EMPINFO_DEL (EMPID, NAME, [DATE], CREATOR)
SELECT EMPID, NAME, @DATE, @CREATOR
FROM EMPINFO_TBL
WHERE EMPID = @EMPID"

With cmd.Parameters
    .Add("@DATE", SqlDbType.Date).Value = dateVariable
    .Add("@CREATOR", SqlDbType.VarChar, 50).Value = creatorVariable
    .Add("@EMPID", SqlDbType.VarChar, 50).Value = empIdVariable
End With

调整它做什么?我们无法读懂你的心思。你需要提供一个完整而清晰的描述,说明你正在努力实现什么,以及你到底是如何失败的。抱歉,我含糊其辞地发现了这一点。我想实现的是将员工ID为-12345的数据从表1复制到表2,但我想将值也从表格中输入,即用户和日期的Label1和Label2。希望一切都会明朗。谢谢。没有人需要阅读评论才能理解你的问题。编辑问题并添加所有本来应该在那里的信息。嗨,jm,稍后让我试试你的建议,让你知道。谢谢你抽出时间。嗨,杰姆西林尼,刚刚试过,效果很好。非常感谢你,你帮了我大忙。使用cmd.Parameters。Add@DATE,SqlDbType.Date.Value=TrimDate.Now.tostringyyyyy-MM-DD。Add@USER,SqlDbType.VarChar,50.Value=UCaseTrimForm1.Label2.Text&&TrimForm1.Label5.textnooooooooooooooooooooooooooo!!!不要将字符串用于日期。使用日期。这就是数据类型存在的原因。请不要执行以下操作:。Add@DATE,SqlDbType.Date.Value=TrimDate.Now.ToStringYYYY-MM-DD。如果要将日期上的时间归零,请获取日期属性,例如。Add@DATE,SqlDbType.Date.Value=Date.Now.Date。这就是说,如果你希望今天的日期没有时间,首先不要使用日期。那正是日期。今天是:。Add@DATE,SqlDbType.Date.Value=Date.Today。此外,如果您坚持忽略我所说的关于获取其他参数字符串的正确方法的所有内容,至少不要编写VB6代码以错误的方式执行:。Add@USER,SqlDbType.VarChar,50.Value=${Form1.Label2.Text.Trim.ToUpper}-{Form1.Label5.Text.Trim}.最后,您正在修剪Date.Now.ToStringYYYY-MM-DD的结果这一事实证明您修剪的理由不充分。该字符串不可能有前导空格或尾随空格,那么您修剪它的可能原因是什么呢?不要无缘无故地编写任何代码。您编写的每一段代码都应该能够实现e一些你已经考虑过并且知道的特定内容是必需的。如果你正在修剪不可能需要修剪的文本,那么你没有对其进行足够的思考。
cmd.CommandText = "INSERT INTO EMPINFO_DEL (EMPID, NAME, [DATE], CREATOR)
SELECT EMPID, NAME, @DATE, @CREATOR
FROM EMPINFO_TBL
WHERE EMPID = @EMPID"

With cmd.Parameters
    .Add("@DATE", SqlDbType.Date).Value = dateVariable
    .Add("@CREATOR", SqlDbType.VarChar, 50).Value = creatorVariable
    .Add("@EMPID", SqlDbType.VarChar, 50).Value = empIdVariable
End With