我设置了一个文本字段和按钮来修剪youtube链接的末尾并将其保存到SQL Server表中。但我的存储过程实际上没有保存任何东西。
HTML
<asp:TextBox ID="txtYoutubeLink" runat="server" AutoPostBack="true" Width="300"></asp:TextBox>
<asp:Button ID="btnSave" runat="server" Text="Save Link" Width="120" />
VB.Net
Protected Sub btnSave_Click(sender As Object, e As System.EventArgs) Handles btnSave.Click
If txtYoutubeLink.Text = "" Then
Else
Dim link As String = txtYoutubeLink.Text
Dim shortlink As String = link.Substring(link.LastIndexOf("=") + 1)
SqlHelper.ExecuteNonQuery(System.Configuration.ConfigurationManager.AppSettings("dbConn"), "X_WW_spSaveVideoUrl", lstStockItems.SelectedItem.Value.ToString(), shortlink)
End If
End Sub
存储过程:
ALTER PROCEDURE [dbo].[X_WW_spSaveVideoUrl]
@STOCKCODE VARCHAR(15),
@VideoURL VARCHAR(max)
AS
UPDATE Stock_Items
SET X_VIDEOURL = @VideoURL
WHERE StockCode = @STOCKCODE
lstStockItems
是由另一个存储过程设置的ASP:Datalist,值字段已正确设置为产品库存代码。它在几个页面上使用,所以我知道它不是它失败的地方,但我不明白为什么新程序不起作用。我唯一能想到的是,这用于覆盖现有表中的null
字段,所以我的更新查询可能是错误的?
修改
这是另一个文本框/按钮组合,我用它来更改已经针对它们列出的产品的youtube链接。
Protected Sub btnUpdate_Click(sender As Object, e As System.EventArgs) Handles btnUpdate.Click
If txtChangeYoutubeLink.Text = "" Then
Else
Dim link As String = txtChangeYoutubeLink.Text
Dim shortlink As String = link.Substring(link.LastIndexOf("=") + 1)
SqlHelper.ExecuteNonQuery(System.Configuration.ConfigurationManager.AppSettings("dbConn"), "X_WW_spSaveVideoUrl", lstLinked.SelectedItem.Value.ToString(), shortlink)
End If
End Sub
工作正常。因此,我可以使用该过程将X_VideoUrl
字段从“blah”更改为“bleh”,但不能将其从NULL更改为“bleh”。
答案 0 :(得分:0)
当您使用SP在数据库表中保存任何字符串时,您应该使用单个引用来编写'"++"'
。您以这种方式传递变量值。
您可以执行此类更改。 SqlHelper.ExecuteNonQuery(System.Configuration.ConfigurationManager.AppSettings("dbConn"), '"X_WW_spSaveVideoUrl"', lstLinked.SelectedItem.Value.ToString(), shortlink)
或强>
Dim URL as string = "www.youtube.com"
SqlHelper.ExecuteNonQuery(System.Configuration.ConfigurationManager.AppSettings("dbConn"), '"+ URL +"', lstLinked.SelectedItem.Value.ToString(), shortlink)
答案 1 :(得分:0)
我找到了解决办法。在对我的代码进行晃动,刺激,诅咒和生气之后,我只是在我的手指上并在服务器管理器中运行了更新查询。更新了35,000个库存项目的列,将 NULL 更改为0。
我所做的查询可以毫不费力地将字段从0更改为我想要的任何内容,因此我不再使用空字段,只是确保列上的默认值为0以覆盖新的库存项目。
现在工作正常。