我從別人繼承了這一項目,並需要清理,以滿足新的要求,另一個表中提取數據 - 他們已經設計了它,像這樣..INSERT INTO表由
我在訪問2個表數據庫(我已經包括在大括號中的字段的數據類型):
活動:
事件ID {自動編號} | EventTitle {短文本} | EventDescription {長文本} | EventDate {Date/Time} | EventCategory {查找與類別的排源/ CategoryTitle}
分類:
類別ID {自動編號} | CategoryTitle {短文本} | CategoryImage {短文本} | CategoryColor {Short Text}
'Categories'表包含關於特定類別的所有'Master'信息,例如名稱,圖標(例如刻度線,十字等)。
而且我有一個查詢(訪問內部)這兩個表中的數據拉在一起,下面的字段順序:
事件ID | EventTitle | EventDescription | EventDate | CategoryTitle | CategoryImage
該查詢的SQL是:
SELECT Events.EventID, Events.EventTitle, Events.EventDescription,
Events.EventDate, Categories.CategoryTitle, Categories.CategoryImage,
Categories.CategoryColor FROM Events INNER JOIN Categories ON
Events.EventCategory = Categories.CategoryID ORDER BY
Events.EventDate;
網站的其他領域依賴查詢檢索信息。
在Visual Studio中,我試圖從插入文本框的ASP值和下拉控件到從我的數據庫下面的字段:
- EVENTTITLE(以Events.EventTitle)
- EventDescription(以Events.EventDescription )
- EVENTDATE(至Events.EventDate)
- EventCategory(至Events.EventCategory)
編號4是有問題的,因爲它目前是對「主」事件表的訪問查找,該表包含有關實際類別的信息。據推測,從未打算將數據以這種方式插入表中;設置事件類別的唯一可能方式是使用Access數據庫內的下拉組合框來選擇事件。
最後這裏是子程序我寫插入到數據庫:
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim conn As New OleDb.OleDbConnection(ConfigurationManager.ConnectionStrings("BookMeetConnString").ConnectionString)
conn.Open()
Dim cmd As New OleDbCommand("INSERT INTO Events (EventTitle, EventDescription, EventDate, EventCategory) VALUES (@f1,@f2,@f3,@f4)",
conn)
cmd.Parameters.AddWithValue("@f1", tb_eventtitle.Text)
cmd.Parameters.AddWithValue("@f2", tb_eventdescription.Text)
cmd.Parameters.AddWithValue("@f3", DateTime.ParseExact(tb_eventdate.Text, "dd/MM/yyyy",
CultureInfo.InvariantCulture))
cmd.Parameters.AddWithValue("@f4", dd_eventcategory.SelectedValue)
cmd.ExecuteNonQuery()
conn.Close()
End Sub
還有其他ASP.NET databinded上依賴於的「類別」的內容,網站的其他控制表格保持不變,所以我怎麼能插入'事件'表與我上面列出的字段(特別是 EventCategory)?
編輯:
這裏是我完成的子:
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
Dim conn As New OleDb.OleDbConnection(ConfigurationManager.ConnectionStrings("BookMeetConnString").ConnectionString)
conn.Open()
Dim cmd As New OleDbCommand("INSERT INTO Events (EventTitle, EventDescription, EventDate, EventCategory) VALUES (@f1,@f2,@f3,@f4)",
conn)
cmd.Parameters.AddWithValue("@f1", tb_eventtitle.Text)
cmd.Parameters.AddWithValue("@f2", tb_eventdescription.Text)
cmd.Parameters.AddWithValue("@f3", DateTime.ParseExact(tb_eventdate.Text, "dd/MM/yyyy",
CultureInfo.InvariantCulture))
cmd.Parameters.AddWithValue("@f4", dd_eventcategory.SelectedIndex + 1)
cmd.ExecuteNonQuery()
conn.Close()
End Sub
'EventCategory'查找字段是否允許多個選擇? – 2013-04-10 19:18:09
@Gord Thompson:不,只有單一選擇,即「公開」,「私人」或「僅限羣組」 – adaam 2013-04-10 19:20:35
@dasblinkenlight:對不起,這是一個錯誤,我會重新發布我的工作代碼(我只是玩弄選擇多個表,但意識到我的問題的解決方案將需要比簡單地執行選擇查詢更多的工作) – adaam 2013-04-10 19:24:40