我有一个来自 SQL 请求的数据表。虽然我确实在使用 OLEDB 处理一个表,但即使我从我的 SQL 服务器获取该表,我也遇到了同样的问题。
如果我填充数据表然后查询数据列 - 他们都说 AllowDBNull== true 和 allowNull == true。但是,如果我查看 SSMS 中的表格,则会另有说明。
string selectStmt= "Select * from foobar; "
DataSet NewData = new DataSet();
using (SqlConnection DataConn = new SqlConnection(MyConnectionString))
{
SqlDataAdapter DataAdapter = new SqlDataAdapter(selectStmt, DataConn );
var Results = DataAdapter.Fill(NewData, tableName);
}
DataColumn Col = NewData.Tables[0].Columns[0];
// Col.AllowDBNull is always true as is Col.AllowNull
Run Code Online (Sandbox Code Playgroud)
我似乎也无法弄清楚从哪里获取字符串字段的长度。
这使得在我尝试上传数据之前实现一些简单的客户端错误检查有点困难。
如果我只处理基于 SQL 服务器的表,我可以使用 Microsoft.SqlServer.Management.Sdk 和 Microsoft.SqlServer.Management.Smo。既然我不是,那就完了。
由于我不知道适用于此的术语,我不确定如何搜索现有的评论.
我最近浪费了大量时间,表达体类似于:
public SomeListViewModel SearchSomeModel => new ShowSomeViewModel{...};
Run Code Online (Sandbox Code Playgroud)
当我尝试设置值时,例如:
SearchSomeModel.Property = 12345;
它表现得像一切都很好.但实际价值从未改变.当我改为插入{get;}时:
public SomeListViewModel SearchSomeModel {get;} = new ShowSomeViewModel{...};
Run Code Online (Sandbox Code Playgroud)
它工作正常.
有趣的是,如果这是以正常的get开始(使用get {return ..},那么ReSharper(?)提供将其转换为第一个版本.
无论如何,我想要理解两者之间的差异(不,不是在CLR级别),而只是为了a)知道如何引用其中的每个正确的术语和b)为什么一个有效,另一个只是假装工作.
谢谢!