但返回的值是null
?怎么可能,在输出中我得到了这个:
这是我使用的代码:
public static SQLiteConnection dbConnection = new SQLiteConnection("RPR_REKENSOFTWARE_DB.db");
public static List<String> GetParts()
{
var items = new List<String>();
try
{
string sSQL = @"SELECT * FROM parts;";
ISQLiteStatement dbState = dbConnection.Prepare(sSQL);
// Get the records
while (dbState.Step() == SQLiteResult.ROW)
{
// Say what it is.
string partNr = dbState[1] as string;
items.Add(partNr);
}
return items;
}
catch (Exception ex)
{
Debug.WriteLine(ex);
throw ex;
}
}
这是我使用的数据库:
答案 0 :(得分:0)
原因是您正在将数据库中的值转换为string
,尽管它实际上是int
。你应该这样做:
string partNr = ( ( int )dbState[ 1 ] ).ToString();
或更简单:
string partNr = dbState[ 1 ].ToString();
原因是从数据库返回的行包含.NET列类型的.NET等价物,因此dbState[1]
是int
。但是,当你在int上使用as string
时,它无法投射,你得到null
。