1
我试图在dbcommand.commandtext中通过case语句添加一个order,但是我看到没有行被返回。我想为case语句中的颜色分配优先级。这将帮助我避免创建一个新的表来优先考虑,并重写很多代码来映射外键。任何输入都会有帮助。在dbCommand.CommandText中按大小写排序
这里的语句: -
Protected Sub AddData()
Dim cn As OleDbConnection = New OleDbConnection(ConfigurationManager.AppSettings("ConnectionString"))
cn.Open()
Dim dbCommand As New OleDbCommand
dbCommand.Connection = cn
dbCommand.CommandText = "SELECT * from tblPosts ORDER BY CASE PriorityLevel WHEN 'Red' then 1 when 'Orange' then 2 ELSE 3 END"
Try
dbCommand.ExecuteNonQuery()
Dim objdatareader As OleDbDataReader = dbCommand.ExecuteReader()
While objdatareader.Read()
Dim PostID As Integer = CInt(objdatareader("ID"))
PopulateImages(PostID, cn)
PopulateCategories(PostID, cn)
rssFeed.AddItem(objdatareader, ImageList, CategoryList)
ImageList.Clear()
CategoryList.Clear()
End While
objdatareader.Close()
Catch myerror As OleDbException
Dim strErr As String = "There was an error updating the database: " & myerror.Message
End
谢谢
我没有得到任何语法错误。我也尝试在最后删除PriorityLevel,但它不返回任何行。我试过用'%Red%'替换='Red'等。没有工作:( – curious123
@PrathibhaAyyappan:然后你的问题是你没有任何数据在你的表中,直接选择没有'order by'并确认你有数据。 – Icarus
我有我的数据如果没有这个顺序,我会返回Red,Orange等作为select语句的结果 – curious123