我有简单的表项和文本框textbox1现在我想在文本框中显示最大值我使用命令但代码不起作用
项目表:CREATE TABLE TableItem(ItemId NUMBER(10)NOT NULL, ItemName VARCHAR2(40)NOT NULL,UnitId NUMBER(10)NOT NULL, CategoryId NUMBER(10)NOT NULL,ItemStatus NUMBER(1)NOT NULL, SupplierId NUMBER(10)NOT NULL);
和项目表插入数据:
INSERT INTO TableItem(ITEMID,ITEMNAME,UNITID,CATEGORYID,ITEMSTATUS,SUPPLIERID) VALUES(01,'Product-1',21,10,1,51); INSERT INTO TableItem(ITEMID,ITEMNAME,UNITID,CATEGORYID,ITEMSTATUS,SUPPLIERID) VALUES(02,'Product-2',22,11,1,52); INSERT INTO TableItem(ITEMID,ITEMNAME,UNITID,CATEGORYID,ITEMSTATUS,SUPPLIERID) VALUES(03,'Product-3',23,12,1,53); INSERT INTO TableItem(ITEMID,ITEMNAME,UNITID,CATEGORYID,ITEMSTATUS,SUPPLIERID) VALUES(04,'Product-4',24,14,1,53); INSERT INTO TableItem(ITEMID,ITEMNAME,UNITID,CATEGORYID,ITEMSTATUS,SUPPLIERID) VALUES(05,'Product-5',21,12,1,53); INSERT INTO TableItem(ITEMID,ITEMNAME,UNITID,CATEGORYID,ITEMSTATUS,SUPPLIERID) VALUES(06,'Product-5',23,12,1,52);
现在我需要itemid的最大值
con.Open();
try
{
OleDbCommand cmd4 = new OleDbCommand("SELECT MAX(ItemId) FROM TableItem", con);
textBoxInsert.Text = cmd4.ExecuteScalar().ToString();
}
finally
{
}
con.Close();
答案 0 :(得分:0)
您需要创建一个数据适配器,它将根据您的连接在您的数据库中获取您的SQL。之后,您将获得一个表作为结果,因此您只需将其添加到DataTable并获取行。有更多有趣的实现,但使用此代码,您可以看到它是否一切正常,我已经实现了这样的MySQL版本:
.html
在你的情况下,你只需要用OracleClient中的OracleDataAdapter替换MySQLDataAdapter
参考:
https://msdn.microsoft.com/pt-br/library/system.data.oracleclient.oracledataadapter(v=vs.110).aspx
答案 1 :(得分:0)
很简单。我们对将要在数据库中获得的数字进行了双精度计算。
using (MySqlCommand cmd = new MySqlCommand("SELECT MAX(ItemId) FROM TableItem", con))
{
con.Open();
double result = (Convert.ToDouble(cmd.ExecuteScalar()));
textBoxInsert.Text = result.ToString();
}