![](/img/trans.png)
[英]“System.InvalidCastException” error when retrieving data from SQL Server 2012 Express
[英]SQL Server (ORM) select data from database - System.InvalidCastException
我嘗試使用 SQL 服務器和實體框架核心 (ORM) 從數據庫中獲取數據,但出現此錯誤:
System.InvalidCastException:“指定的演員表無效。”
首先,我創建了一個 class 來表示簡單的數據庫表:
public class Database : DbContext
{
public DbSet<info> info { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
_ = optionsBuilder.UseSqlServer(ConfigurationManager.ConnectionStrings["users"].ConnectionString);
}
}
public class info
{
public string Name { get; set; }
public int ID { get; set; }
}
然后我在我的web.config
中編寫了連接字符串,如下所示:
<connectionStrings>
<add name="users"
connectionString="Server=DESKTOP-0VD537B\SQLEXPRESS;Database=users;trusted_connection=true;"
providerName="System.Data.SqlClient" />
</connectionStrings>
在ValuesController
中, POST
方法可以正常工作:
// POST api/values
public void Post([FromBody] string value)
{
using (var db = new Database())
{
var user = new info { Name = "Name1", ID = 1 };
db.info.Add(user);
_ = db.SaveChanges();
}
}
但是當我嘗試從我的GET
方法中顯示數據時,我得到了那個錯誤
// GET api/values
public IEnumerable<string> Get()
{
List<string> users_arr = new List<string>();
using (var db = new Database())
{
var users = db.info;
foreach (var user in users)
{
users_arr.Add(user.ToString());
}
}
return users_arr;
}
1-更改ID的類型以與數據庫中的類型兼容
public class info
{
public string Name { get; set; }
public string ID { get; set; }
}
2- 在 post 方法中編輯 ID 的值。
// POST api/values
public void Post([FromBody] string value)
{
using (var db = new Database())
{
var user = new info { Name = "Name1", ID = "1" };
db.info.Add(user);
_ = db.SaveChanges();
}
}
Get方法看起來更好這樣
// GET api/values
public IEnumerable<string> Get()
{
List<string> users_arr = new List<string>();
using (var db = new Database())
{
var users = db.info;
try
{
foreach (var user in users)
{
users_arr.Add("Name:"+user.Name+" ID:"+user.ID);
}
return users_arr;
}
catch (Exception e)
{
return new string[] {"error:", e.Message };
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.