第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Datatable rows.count == 0 給出 1 盡管在表中沒有找到記錄

Datatable rows.count == 0 給出 1 盡管在表中沒有找到記錄

C#
汪汪一只貓 2022-10-23 16:05:57
我有一個問題,我不知道為什么會這樣!我試圖在數(shù)據(jù)庫表內(nèi)的列中找到最大值,我使用以下代碼:private void FrmCustomer_New_Load(object sender, EventArgs e){    int NewID;               DataTable _Dt = CusVar.GetCustomersIDs();    if (_Dt.Rows.Count == 0)    {        NewID = 1;        this.txt1.Text = NewID.ToString();        DataRow _Row = CusVar.GetCustomersIDs().Rows[0];        MessageBox.Show(Convert.ToString(_Dt.Rows[0]["MaxID"]));    }}代碼正在運(yùn)行,但它給出了 1 雖然表中沒有記錄?我使用 C# 和 Access 數(shù)據(jù)庫 ACCDB。我在 Cls_Customers 中使用這個函數(shù):public DataTable GetCustomersIDs(){    DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();    DataTable Dt = new DataTable();    Dt = DAL.DataSelect("Select Max(CustomerID) AS MaxID From TblCustomers", null);    DAL.CloseConn();    return Dt;}請問這是什么問題?
查看完整描述

3 回答

?
尚方寶劍之說

TA貢獻(xiàn)1788條經(jīng)驗 獲得超4個贊

這是您的查詢:


Select Max(CustomerID) AS MaxID

From TblCustomers

這是一個聚合查詢。no 的聚合查詢group by總是返回一行——不管是否有任何行匹配。


單行中返回的值是NULLfor MaxId。


我非常懷疑你想做什么。如果您想要最大 id - 如果表為空則沒有行 - 然后執(zhí)行:


select c.CustomerID

from TblCustomers c

order by c.CustomerID desc

fetch first 1 row only;

(這使用 ANSI/ISO 標(biāo)準(zhǔn)語法,因此確切的邏輯可能取決于您的數(shù)據(jù)庫。)


我的懷疑是,然后您想將此 id 用于insert- 這是一種不好的方法。幾乎所有數(shù)據(jù)庫都支持某種類型的自動遞增列(使用語法元素,例如auto_increment、serial或identity)。這是為表中的列分配唯一遞增 id 的正確方法。


查看完整回答
反對 回復(fù) 2022-10-23
?
胡說叔叔

TA貢獻(xiàn)1804條經(jīng)驗 獲得超8個贊

試試這個: SELECT MAX(T1.CustomerID) AS MaxID From TblCustomers T1



查看完整回答
反對 回復(fù) 2022-10-23
?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗 獲得超6個贊

如果沒有符合條件的行,則 Sql 查詢可能會返回 null。

如果目的是查找返回的行數(shù)。更改 sql 查詢以返回計數(shù),而不是使用聚合函數(shù)。


查看完整回答
反對 回復(fù) 2022-10-23
  • 3 回答
  • 0 關(guān)注
  • 193 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號