C# 获取错误“;对象引用未设置为对象的实例;Linq to SQL数据库将XML文件插入为VarBinary
我犯了一个错误 对象引用未设置为对象的实例 我在函数中使用上述代码作为C# 获取错误“;对象引用未设置为对象的实例;Linq to SQL数据库将XML文件插入为VarBinary,c#,sql,linq-to-sql,linq-to-xml,C#,Sql,Linq To Sql,Linq To Xml,我犯了一个错误 对象引用未设置为对象的实例 我在函数中使用上述代码作为 private void DashBoardGenerator_DashboardSaving(object sender, DashboardSavingEventArgs e) { // Determines whether the user has called the Save command. if (e.Command == DashboardSaveCommand.Save) { try
private void DashBoardGenerator_DashboardSaving(object sender, DashboardSavingEventArgs e)
{
// Determines whether the user has called the Save command.
if (e.Command == DashboardSaveCommand.Save)
{
try
{
using (MemoryStream saveStream = new MemoryStream())
{
Dashboard.SaveToXml(saveStream);
DashboardSql.SaveDashboardStream(dashboardStorageConnectionString, saveStream);
}
e.Handled = true;
}
catch (Exception ex)
{
XtraMessageBox.Show(ex.Message, "Unable to Save Dashboard", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
请指导我是否在任何地方出错?可能
storedDashboard
似乎为空
using (DashboardDBConDataContext db = new DashboardDBConDataContext(connectionString))
{
DBDashboard storedDashboard = (from t in db.Dashboards
select t).FirstOrDefault();
//Always check for null when selecting First() or FirstOrDefault()
if(storedDashboard == null) {
storedDashboard = new DBDashboard();
}
ms.Seek(0, SeekOrigin.Begin);
storedDashboard.DashboardStream = new Binary(ms.ToArray());
db.SubmitChanges();
}
可能
storedDashboard
似乎为空
using (DashboardDBConDataContext db = new DashboardDBConDataContext(connectionString))
{
DBDashboard storedDashboard = (from t in db.Dashboards
select t).FirstOrDefault();
//Always check for null when selecting First() or FirstOrDefault()
if(storedDashboard == null) {
storedDashboard = new DBDashboard();
}
ms.Seek(0, SeekOrigin.Begin);
storedDashboard.DashboardStream = new Binary(ms.ToArray());
db.SubmitChanges();
}
您在哪一行获得此异常?您可以从堆栈跟踪中检查它。您在哪一行获得此异常?您可以从堆栈跟踪检查它。是的,您完全正确,但为什么在我将数据从xml存储到流时流没有获取数据。我认为,一旦您使用(MemoryStream saveStream=new MemoryStream())执行此操作,
saveStream
中没有任何内容,你应该给它赋值。我发现问题基本上在这里“MyDashboard storedDashboard=(从db中的t开始。Dashboards选择t)。FirstOrDefault();”你能告诉我正确的语法是什么吗,因为我在db中有3个字段“ID(标识)、名称、文件”您是否具有查找特定仪表板的位置条件?如果您需要某个字段值,则(从db.dashboard中的t选择t.Name)。FirstOrDefault()
谢谢您通过添加db.storedDashboard.InsertOnSubmit(storedDashboard)解决了每个问题;是的,你是绝对正确的,但为什么流在我将数据从xml存储到流时没有获取数据。我认为存储流
中没有任何内容。一旦你使用(MemoryStream saveStream=new MemoryStream())执行此操作,你应该为它分配一些值。我发现问题基本上就在这里“MyDashboard storedDashboard=(从db.Dashboards中的t中选择t).FirstOrDefault();“您能告诉我正确的语法是什么吗,因为我在DB中有3个字段”ID(Identity)、Name、File“您是否有查找特定仪表板的where条件?如果您需要某个字段值,请(从DB.Dashboards中的t选择t.Name)。FirstOrDefault()
谢谢,通过添加db.storedDashboard.InsertOnSubmit(storedDashboard),每个问题都得到了解决;