我一直在努力将XML文件链接到下拉列表和网格视图.
我已经设法从XML文档填充一个下拉列表,然后将gridview填充到另一个,但是当尝试添加where子句时,我得到一个空引用异常并且不确定原因.我该如何解决这个问题?
XDocument xmlDoc = XDocument.Load(Server.MapPath("XMLFile.xml"));
var q = from c in xmlDoc.Descendants("Images")
where c.Attribute("PropertyId").Value == DropDownList1.SelectedValue.ToString()
select new
{
PropertyID = c.Element("ThumbUrl").Value,
};
GridView1.DataSource = q;
GridView1.DataBind();
Run Code Online (Sandbox Code Playgroud) 我想创建一个包含我正在处理的所有Pushpin对象的数组.在尝试填充Array时,我收到NullReferenceException抛出未处理的错误.我已经阅读了尽可能多的文档,但无法解决发生的事情.
我至少尝试了以下方法:
Pushpin[] arrayPushpins;
int i = 0;
foreach (Result result in arrayResults)
{
Pushpin pin;
pin = new Pushpin();
pin.Location = d;
myMap.Children.Add(pin);
arrayPushpins[i] = new Pushpin();
arrayPushpins.SetValue(pin, i);;
i++;
}
Run Code Online (Sandbox Code Playgroud)
和...
Pushpin[] arrayPushpins;
int i = 0;
foreach (Result result in arrayResults)
{
Pushpin pin;
pin = new Pushpin();
pin.Location = d;
myMap.Children.Add(pin);
arrayPushpins[i] = new Pushpin();
arrayPushpins[i] = pin;
i++;
}
Run Code Online (Sandbox Code Playgroud)
似乎没有任何工作......我每次都会得到NullReference错误.有任何想法吗?非常感谢!将.
是否C#有一些经验法则或编码约定契约,它处理可能的null论证?
作为一个例子,我正在编写一个自定义方法,它检索一个byte[] data参数.
public static string ConvertDataToMyOwnAndCustomString(byte[] data) { ... }
Run Code Online (Sandbox Code Playgroud)
现在-我应该怎么做,如果传递的data是null?
我应该保留它,以便可能NullReferenceException发生吗?或者我应该写支票并做这样的事情:
if (data == null) return null;
Run Code Online (Sandbox Code Playgroud) 也许我正在做一些非常错误的事情,但不知何故,这段代码总是崩溃并出现NullReferenceException:
public class IncomingMessageEventData : EventArgs
{
public IncomingMessageEventData(SpecialClasses.IncomingMessageData _msg, List<string> _toreturn)
{
msg = _msg;
ToReturn = _toreturn;
}
public SpecialClasses.IncomingMessageData msg { get; set; }
public List<string> ToReturn { get; set; }
}
public delegate void IncomingMessageHook(IncomingMessageEventData Args);
public event IncomingMessageHook InComingMessage;
public string NewMessage(string[] _message, System.Net.IPEndPoint RemoteIP)
{
if (InComingMessage != null)
{
IncomingMessageEventData data = new IncomingMessageEventData(new SpecialClasses.IncomingMessageData(_message, RemoteIP), new List<string>());
string ToReturn = "";
InComingMessage(data);
foreach (var item in data.ToReturn)
{
if (item.Length > 0) …Run Code Online (Sandbox Code Playgroud) 我有以下代码将以前的值输入DataGridView单元格.如果在第0行和第2列或更大,则向左的val,否则直接在上面的值:
private void dataGridViewPlatypi_CellEnter(object sender, DataGridViewCellEventArgs args)
{
// TODO: Fails if it sees nothing in the previous cell
string prevVal = string.Empty;
if (args.RowIndex > 0)
{
prevVal = dataGridViewPlatypi.Rows[args.RowIndex - 1].Cells[args.ColumnIndex].Value.ToString();
} else if (args.ColumnIndex > 1)
{
prevVal = dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex-1].Value.ToString();
}
dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex].Value = prevVal;
}
Run Code Online (Sandbox Code Playgroud)
只要有值可以查看和复制,这就很有用.如果单元格是空白的,我得到:
用户代码未处理System.NullReferenceException
消息=未将对象引用设置为对象的实例.
我猜这是一个使用null coalesce运算符的机会,但(假设我的猜测很好),我该如何实现呢?
c# datagridview nullreferenceexception winforms datagridviewtextboxcell
在以下代码中:
MyObject objInstance;
private void someEventHandler(object sender, EventArgs e)
{
if (sender == objInstance && (sender as MyObject).SomeBoolProperty)
// Do Something
}
Run Code Online (Sandbox Code Playgroud)
Resharper警告sender as MyObject可能是一个可能的NullReferenceException.这个代码可以吗?我假设如果sender == objInstance那(sender as MyObject)不会返回null,但这不是第一次Resharper消息告诉我C#行为/功能我不知道.
我的客户端代码在四种不同的方法中几乎相同(不同之处在于调用的特定Web API RESTful方法和相应的操作通用列表).
在四种情况中的三种情况下,我可以突破while循环(请参阅如何在没有使用"占位符"的情况下安全循环直到没有其他任何事情可以做到这一点?)像这样:
if (arr.Count <= 0) break;
Run Code Online (Sandbox Code Playgroud)
...但在一种情况下,一旦没有从RESTful方法返回的数据,就会导致NRE.在那种方法中,我必须使用:
if (null == arr) break;
Run Code Online (Sandbox Code Playgroud)
我现在知道为什么,因此:
行为不同的原因是因为存储库代码不同.因此,我正在改变问题" 为什么在大多数情况下检查JArray.Count是否有效,但在一个特定情况下会导致NRE? "
以下是检查数组计数的三种方法的工作方式:
public IEnumerable<Subdepartment> Get(int ID, int CountToFetch)
{
return subdepartments.Where(i => i.Id > ID).Take(CountToFetch);
}
Run Code Online (Sandbox Code Playgroud)
...这里是RedemptionRepository中包含的"备用版本":
public IEnumerable<Redemption> Get(int ID, int CountToFetch)
{
IEnumerable<Redemption> redempts = null;
if (redemptions.Where(i => i.Id > ID).Take(CountToFetch).Count() > 0)
{
redempts = redemptions.Where(i => i.Id > ID).Take(CountToFetch);
}
return redempts;
}
Run Code Online (Sandbox Code Playgroud)
因此,为了与所有四种方法保持一致,我可以像上面那样制作所有其他存储库方法(当没有找到数据时返回null),并将客户端中的测试条件更改为无效,或者我可以还原Redemption存储库代码就像它以前/像其他人一样.
所以问题是:哪个是首选方法(没有双关语意)?
我有两个项目.一个是网络,另一个是Windows窗体.Web项目连接到数据库,但Windows项目抛出异常NullReferenceException读取连接字符串.
我使用相同的类来连接两个项目.使用LINQTOSQL建立连接.
这是我的连接字符串:
<connectionStrings>
<add name="GPSystemConnectionString"
connectionString="Data Source=.;Initial Catalog=GPSystem;User ID=***;Password=***"
providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
这就是我读它的方式.
string CS = ConfigurationManager.ConnectionStrings["GPSystemConnectionString"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)
(此行发生异常).....(对象引用未设置为对象的实例.)
注意:我使用相同的类连接两个项目....一个连接但另一个失败.
请任何人帮我这个!
先感谢您.
我定义了一些自定义类,包括其他类的列表,如下所示:
public class Unit
{
public string Name { get; set; }
public List<Group> Contains { get; set; }
}
public class Group
{
public string Name { get; set; }
public Type Type { get; set; }
public int Number { get; set; }
}
public static Type basic_1 = new Type() { Name = "basic_1", Number = 1, Cost = 13 };
Run Code Online (Sandbox Code Playgroud)
基本思想是你有一个包含一个组列表的单元,每个组都有不同的类型.该类型包含特定属性,而包含它们的类本质上是组织的.
然后我尝试开始构建这些类,如下所示:
Unit unit1 = new Unit() { Name = "Unit 1" };
Group group1 = …Run Code Online (Sandbox Code Playgroud) 使用可能具有或不具有null值的值的正确方法是什么?
我有一段代码,如果正在休假的员工有一位经理,则会向经理发送电子邮件。
if(holidayRequestForm.Employee.Site.SiteManagerEmail != null)
{
SendMailToManager();
}
Run Code Online (Sandbox Code Playgroud)
但是,这导致了NullReferenceException。
什么是执行调用正确的方法SendMailToManager()如果员工有一个,而不会引起NullReferenceException。
这样使用可能的null值是不好的做法吗?
c# ×10
arrays ×2
.net ×1
asp.net-mvc ×1
class ×1
convention ×1
datagridview ×1
events ×1
json.net ×1
linq ×1
linq-to-xml ×1
list ×1
null ×1
object ×1
resharper ×1
sql ×1
winforms ×1
xml ×1