vb.net 数据库 最大值访问 MAX()
strSQL = "select MAX(ID) from caiming"
不知道这句SQL语句是否正确。
主要代码如下
Dim strSQL As String
Dim conn As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("cookies.mdb"))
strSQL = "select MAX(ID) from caiming"
Dim cmd As New Data.OleDb.OleDbCommand(strSQL, conn)
conn.Open()
Dim dr As Data.OleDb.OleDbDataReader = cmd.ExecuteReader()
dr.Read()
message_newcai.Text &= "<img alt='' src='" & dr.Item("IMG_url_add") & "'/><br/><br/>"
message_newcai.Text &= "菜名:" & dr.Item("caiming") & "<br/><br/>"
message_newcai.Text &= "价格:" & dr.Item("jiage") & "<br/><br/>"
message_newcai.Text &= "口味说明:" & dr.Item("cai_means") & "<br/><br/>"
conn.Close()
说明:
ID是这个表的一个字段,我想通过MAX函数来获取数据库ID字段的最大值,可是老是出问题,在运行的时候会跳出这样的一个说明,如下所示:
IMG_url_add
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.IndexOutOfRangeException: IMG_url_add
源错误:
行 11: Dim dr As Data.OleDb.OleDbDataReader = cmd.ExecuteReader()
行 12: dr.Read()
行 13: message_newcai.Text &= "<img alt='' src='" & dr.Item("IMG_url_add") & "'/><br/><br/>"
行 14: message_newcai.Text &= "菜名:" & dr.Item("caiming") & "<br/><br/>"
行 15: message_newcai.Text &= "价格:" & dr.Item("jiage") & "<br/><br/>"
源文件: D:\WebSite2\message2.aspx.vb 行: 13
堆栈跟踪:
[IndexOutOfRangeException: IMG_url_add]
System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName) +1433771
System.Data.OleDb.OleDbDataReader.GetOrdinal(String name) +65
System.Data.OleDb.OleDbDataReader.get_Item(String name) +12
message2.Page_Load(Object sender, EventArgs e) in D:\WebSite2\message2.aspx.vb:13
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436
具体错误信息图片如下,我个人觉得:
message_newcai.Text &= "<img alt='' src='" & dr.Item("IMG_url_add") & "'/><br/><br/>"
message_newcai.Text &= "菜名:" & dr.Item("caiming") & "<br/><br/>"
message_newcai.Text &= "价格:" & dr.Item("jiage") & "<br/><br/>"
这三句代码应该没什么问题!
求助解决
需要有力的说明和详细的解决,不需要大篇幅的粘贴。和此问题无关的请勿乱贴!问题解决再给加分
答案:strSQL = "select MAX(ID) from caiming" 最后只返回了一个字段,不知道,你 dr.Item("IMG_url_add") 返回的是哪的东西?
按我的理解应该改成
strSQL = "select * from caiming where ID=(select MAX(ID) from caiming)"
其他:改成executeScalar,取一个值就行了 Dim dr As Data.OleDb.OleDbDataReader = cmd.ExecuteReader()
while (dr.Read())
message_newcai.Text &= "<img alt='' src='" & dr["IMG_url_add"]
上一个:vb.net中怎么批量的导入数据
下一个:VB.net 中, 输入“空格”的代码