最佳解答者
如何將資料列一次插入多次?

問題
-
TABLE-1
A B C D E
X1 10/11 20 100 aa
X2 9/6 25 105 bb
--------------------------------
TABLE-2
A B C
X1 10/11 20
X1 10/10 20
X1 10/9 20
X1 10/8 20
X1 10/7 20
大大們好,小弟又來勞煩各位了,現在TABLE-1 的第一列資料 必須填入到TABLE-2
而且要一次插入到TABLE-2七次,也就是七天,類似上面TABLE-2的結果,問題點就是..
一定要在外層跑個迴圈判斷有幾列資料要輸入,然後內層迴圈執行一列資料需要幾天,然後如何將第一天,第二天..第七天..以此類推
分別做資料表的插入動作,正是問題所在,有想過要用迴圈..可是不會寫...或者有其他更好辦法?
問題這樣描述 不知道是否清楚>"<?
我是用VS2005 和SQL2005 測試,麻煩大大們了,謝謝.- 已移動 璉璉 2011年10月15日 上午 01:17 (從:Visual Studio一般討論區(General))
解答
-
安你好
請直接參考
'利用 For Each 去讀取 table1 每一列資料 For Each row1 As DataRow In table1.Rows For i As Integer = 1 To 7 '設定天數 '請自行處理要新增的日期變化 table2.Rows.Add(New Object() {row1.Item("A"), row1.Item("B"), row1.Item("C")}) Next Next
建議
請先MSDN For each 的用法
再多了解看看 MSDN DataTable
- 已標示為解答 華麗的冒險 2011年10月13日 上午 12:47
-
安你好
請直接參考
'利用 For Each 去讀取 table1 每一列資料 For Each row1 As DataRow In table1.Rows For i As Integer = 1 To 7 '設定天數 '請自行處理要新增的日期變化 table2.Rows.Add(New Object() {row1.Item("A"), row1.Item("B"), row1.Item("C")}) Next Next
建議
請先MSDN For each 的用法
再多了解看看 MSDN DataTable
如果只是把dt1 copy到 dt2的話,也可以使用table2.Rows.Add(row1.ItemArray())
可以參考
DataGridView Rows Copy
亂馬客blog: http://www.dotblogs.com.tw/rainmaker/- 已標示為解答 華麗的冒險 2011年10月13日 上午 12:53
所有回覆
-
安你好
請直接參考
'利用 For Each 去讀取 table1 每一列資料 For Each row1 As DataRow In table1.Rows For i As Integer = 1 To 7 '設定天數 '請自行處理要新增的日期變化 table2.Rows.Add(New Object() {row1.Item("A"), row1.Item("B"), row1.Item("C")}) Next Next
建議
請先MSDN For each 的用法
再多了解看看 MSDN DataTable
- 已標示為解答 華麗的冒險 2011年10月13日 上午 12:47
-
安你好
請直接參考
'利用 For Each 去讀取 table1 每一列資料 For Each row1 As DataRow In table1.Rows For i As Integer = 1 To 7 '設定天數 '請自行處理要新增的日期變化 table2.Rows.Add(New Object() {row1.Item("A"), row1.Item("B"), row1.Item("C")}) Next Next
建議
請先MSDN For each 的用法
再多了解看看 MSDN DataTable
如果只是把dt1 copy到 dt2的話,也可以使用table2.Rows.Add(row1.ItemArray())
可以參考
DataGridView Rows Copy
亂馬客blog: http://www.dotblogs.com.tw/rainmaker/- 已標示為解答 華麗的冒險 2011年10月13日 上午 12:53
-
可以麻煩幫我看一下這段code有什麼問題嗎?
"update Main set mytable.Rows(u).Item(4) ='" & mytable.Rows(u).Item("Unfinished") & "'- '" & mytable.Rows(u).Item("HightProduce") & "' where SerialNo='" & mytable.Rows(u).Item("SerialNo") & "'"
下面是完整的code:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ConnString3 As String = ""
ConnString3 = "server=192.168.89.51;Initial Catalog=Travel;User ID=sa;Password=sa;Trusted_Connection=False"
Dim conn3 As New SqlConnection(ConnString3)
conn3.Open()
Dim selap As New SqlDataAdapter("select * from main", conn3)
Dim ds As New DataSet
selap.Fill(ds, "Main")
Dim mytable As DataTable = ds.Tables("Main")For u As Integer = 0 To mytable.Rows.Count - 1 Step 1
If mytable.Rows(u).Item("Unfinished") Mod mytable.Rows(u).Item("HightProduce") <> 0 ThenDim int_needDAY As Integer = mytable.Rows(u).Item("Unfinished") / mytable.Rows(u).Item("HightProduce") + 1
For j As Integer = 0 To int_needDAY - 1 Step 1
Dim ConnString4 As String = ""
ConnString4 = "server=192.168.89.51;Initial Catalog=Travel;User ID=sa;Password=sa;Trusted_Connection=False"
Dim conn4 As New SqlConnection(ConnString4)
conn4.Open()Dim selstr5 As String = "insert into source(SerialNO,ProduceDate,ProduceQuantity) values('" & mytable.Rows(u).Item("SerialNo") & "','" & CType(mytable.Rows(u).Item("ScheduleDate"), Date).AddDays(-j) & "','" & mytable.Rows(u).Item("HightProduce") & "')"
Dim com5 As SqlCommand = New SqlCommand(selstr5, conn4)
com5.ExecuteNonQuery()
com5.Cancel()
conn4.Close()Dim ConnString8 As String = ""
ConnString8 = "server=192.168.89.51;Initial Catalog=Travel;User ID=sa;Password=sa;Trusted_Connection=False"
Dim conn8 As New SqlConnection(ConnString8)
conn8.Open()
Dim updastr As String = "update Main set mytable.Rows(u).Item(4) ='" & mytable.Rows(u).Item("Unfinished") & "'- '" & mytable.Rows(u).Item("HightProduce") & "' where SerialNo='" & mytable.Rows(u).Item("SerialNo") & "'"
Dim com8 As SqlCommand = New SqlCommand(updastr, conn8)
com8.ExecuteNonQuery()
com8.Cancel()
NextEnd If
Next
End Sub
- 已編輯 華麗的冒險 2011年10月13日 上午 12:51
-
(1) 第一個問題, 好好把ADO.NET 參數式查詢學起來, 少用串接的方法寫 SQl Statemnet 中的條件式, 以避免SQL Injection
(2) 你呼叫 [SqlCommand.Cancel 方法]的理由是什麼 ?
(3) 你應該先描述你執行後發生了什麼樣的問題, 而不是只丟Code出來就問說有什麼問題, 不要把別人當成免費程式碼除錯人員.
在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。