WP8 के साथ SQLite मुझे पागल कर रहा है। :(WP8/C#/SQLite: अंतिम डाली गई आईडी प्राप्त करें?
सभी मैं करना चाहता हूँ पिछले डाला आईडी का मान प्राप्त करने के लिए है ...
मुझे मिल गया है:
class ShoppingItem
{
[SQLite.PrimaryKey, SQLite.AutoIncrement]
public int Id {get; set;}
public string Name {get; set;}
public string Shop {get; set;}
public bool isActive {get; set;}
}
ठीक है, न SQLiteConnection
वस्तु का इस्तेमाल किया है और न ही इसकी Table<ShoppingItem>
एक उचित सदस्य है कि पिछले आईडी है शामिल करने के लिए लग रहे हैं
तो मैं करने की कोशिश की:।
private int GetLastInsertedRowID()
{
int Result = -1;
using (var db = new SQLiteConnection(m_DatabasePath)) {
Result = db.ExecuteScalar<int>("SELECT last_insert_rowid();");
}
return Result;
}
लेकिन यह फ़ंक्शन हमेशा 0
देता है। :( लेकिन जब मैं ShoppingItem
के सभी प्रविष्टियों को पढ़ने, उनकी आईडी मान = 0.
तो मेरे सवाल है: मैं पिछले डाला आईडी कैसे पुनर्प्राप्त कर सकते हैं
पुनश्च:? SQL क्वेरी बदलने के लिए SELECT last_insert_rowid() FROM ShoppingItem;
एक ही परिणाम दे दी है
पी पी एस:। Getting the Last Insert ID with SQLite.NET in C# तरह समाधान संकलन नहीं है, जाहिरा तौर पर वहाँ एक पूरी तरह से अलग एपीआई
db.ExecuteScalar है ("का चयन करें last_insert_rowid()"); काम कर रहे? (बिना; क्वेरी के अंत में) –
Joel
नहीं, उसी परिणाम के साथ या बिना अर्धविराम :( –
मैं अनुशंसा करता हूं कि आप अपने पीके कॉलम 'आईडी' के लिए एक अलग नाम चुनें। मुझे नहीं पता कि आईडी कुछ ऐसा है या नहीं आंतरिक कीवर्ड। लेकिन मैं बस अनुमान लगा रहा हूं। – Joel