我正在制作一个学校项目,在用 c# 制作 sqlite select 命令时遇到了问题。它不是返回 select 查询的值,而是返回 system.Data.Sqlite.SqliteDataAdapter 。有人知道这是为什么吗?
总的来说,我对编码还很陌生,所以请耐心等待,先谢谢你!
这是我的代码
public string SelectSingleData(string table, string id, string tableId, string field)
{
SQLiteDataAdapter ad;
string query = $"SELECT {field} FROM {table} WHERE {tableId} = {id} limit 1;";
string result = null;
var dataSet = new DataSet();
try
{
SQLiteCommand cmd;
sqlite.Open();
cmd = sqlite.CreateCommand();
cmd.CommandText = query;
ad = new SQLiteDataAdapter(cmd);
result = ad.ToString();
}
catch (SQLiteException ex)
{
System.Windows.MessageBox.Show($"{ex}");
}
sqlite.Close();
return result;
}
这就是我调用代码的方式:
con.Connect();
lblName.Content = con.SelectSingleData("character_sheet","1","char_id","name");
我期望代码返回选择查询的值,但它返回的是这个。
这是我用来定义变量的代码,它们被传递到我需要它们的地方
public partial class frmCRUD : Form
{
public static string dbName = "Contacts.db";
private string result;
public string fn { get; set; }
public string ln { get; set; }
public string ad { get; set; }
public string ct { get; set; }
public string st { get; set; }
public string zp { get; set; }
public string ph { get; set; }
public string em { get; set; }
public string rt { get; set; }
这是我的 SELECT 语句,我在另一种表单上调用 readUDV 您可以将所有这些代码保留在一个表单上
public void readUDV()
{
using (SQLiteConnection conn = new SQLiteConnection($"Data Source = '{dbName}';Version=3;"))
{
conn.Open();
using (SQLiteCommand cmd = new SQLiteCommand($"SELECT * FROM FriendsData WHERE FID = " + newData, conn))
{
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
fn = rdr["fxFirstName"].ToString().Trim();
ln = rdr["fxLastName"].ToString().Trim();
ad = rdr["fxAddress"].ToString().Trim();
ct = rdr["fxCity"].ToString().Trim();
st = rdr["fxState"].ToString().Trim();
zp = rdr["fxZip"].ToString().Trim();
ph = rdr["fxCellPhone"].ToString().Trim();
em = rdr["fxEmail"].ToString().Trim();
rt = rdr["fxInfo"].ToString().Trim();
}
}
}
}
}