小编Mar*_*oon的帖子

在DataGridView中将AutoSizeMode设置为AllCells时出现NullReferenceException

我手动将实体框架代码第一个表绑定到datagridview.当我将AutoSizeMode设置为AllCells并向表中添加实例时,我在Add期间得到NullReferenceException.

代码运行如下:

dbContext.Persons.Load();
myDataGridView.DataSource = dbContext.Persons.Local.ToBindingList();

myDataGridView.Columns[ "Description" ].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;

Person p = new Person();
p.Name = "Tester Alfred";
p.Description = "Description"; //no more properties, only those two (Id Property is annotated as [Key]

dbContext.Persons.Add( p ); // this throws a NullReferenceException
Run Code Online (Sandbox Code Playgroud)

以下是堆栈跟踪的相关部分:

System.Data.Entity.Core.Objects.ObjectContext.AddSingleObject(EntitySet entitySet, IEntityWrapper wrappedEntity, String argumentName)
   bei System.Data.Entity.Core.Objects.ObjectContext.AddObject(String entitySetName, Object entity)
   bei System.Data.Entity.Internal.Linq.InternalSet`1.<>c__DisplayClassd.<Add>b__c()
   bei System.Data.Entity.Internal.Linq.InternalSet`1.ActOnSet(Action action, EntityState newState, Object entity, String methodName)
   bei System.Data.Entity.Internal.Linq.InternalSet`1.Add(Object entity)
   bei System.Data.Entity.DbSet`1.Add(TEntity entity)
Run Code Online (Sandbox Code Playgroud)

表人员否则是空的.当我删除AutoSize - 指令时一切都很好.

Plattform:使用Studio 2013的.Net 4.5.1中的WInForms; 运行Win8 Pro,EF …

c# entity-framework datagridview nullreferenceexception winforms

30
推荐指数
1
解决办法
963
查看次数

C#将包含c样式字符串的byte []转换为字符串 - NOT Encoding.GetString(byte [])

愚蠢的我试图将从外部源接收的字节数组转换为字符串.(是的,我确实知道Encoding.GetString(byte[]).

到目前为止我所拥有的:

void myfunc()
{
    byte[] rawData = new byte[ 128 ];

    for( int i = 0; i < rawData.Length; ++i )
    {
        rawData[ i ] = 0;
    }

    rawData[ 0 ] = (byte)'H';
    rawData[ 1 ] = (byte)'e';
    rawData[ 2 ] = (byte)'l';
    rawData[ 3 ] = (byte)'l';
    rawData[ 4 ] = (byte)'o';


    string asString = Encoding.UTF8.GetString( rawData, 0, rawData.Length );

    string asRealString = Encoding.UTF8.GetString( rawData );
}
Run Code Online (Sandbox Code Playgroud)

两个字符串都包含Hello部分,但之后也包含很多\ 0,这不是我所期望的.调试器的输出:asRealString =

"Hello\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让我像"Hello"这样的字符串吗?

我做了goolge,但我得到的只是Encoding.GetString(byte[])......

编辑 …

c# string

5
推荐指数
1
解决办法
4497
查看次数

索引getter中的IndexOutOfRangeException

在我的索引属性中,我检查索引是否超出范围.如果是,我扔了IndexOutOfBoundsException.

当我运行Code Analyst(在VS12中)时,它会抱怨CA1065:意外位置出现意外异常.

仅参考CA1065的描述

System.InvalidOperationException
System.NotSupportedException
System.ArgumentException
KeyNotFoundException
Run Code Online (Sandbox Code Playgroud)

允许在索引的getter中.

投掷IndexOutOfBoundsException对我来说似乎很自然,所以这里的推理是什么?(是的,我知道我可以关闭警告,我只是想知道推理)

.net c# code-analyst

5
推荐指数
2
解决办法
741
查看次数

查询TimeSpan.TotalSeconds时,MediaElement.NaturalDuration会引发异常

我有一个winforms表单,我在其中使用MediaElement.一切正常(或多或少)完美.唯一的办法是,在加载媒体文件(mp3)后,访问NaturalDuration.TimeSpan.TotalSeconds会引发异常

InvalidOperatoinException:无法返回TimeSpan属性,持续时间值为automatic.

(由我自己翻译)

我如何访问timespan属性?在我找到的所有示例中都没有使用特殊设置(好吧,它们似乎是WPF本机...)

我在Windows 7上使用VisualStudio Express .Net 4,C#.

任何提示?

.net wpf mediaelement winforms

4
推荐指数
1
解决办法
5801
查看次数

从IPv4中的(非本地)IP地址获取MAC地址的最简单方法

有没有一种简单的方法可以通过tcp/ipv4套接字获取连接到我的应用程序的机器的MAC地址?

或者更笼统地说:如果我有IP地址,在IPv4中获取相应MAC地址的最佳方法是什么?

c# windows networking mac-address ip-address

1
推荐指数
1
解决办法
2072
查看次数