如何为一个允许DBNull的ComboBox创建一个列表?
如何为允许dbnull的Combobox创建列表? 我尝试了 int?,但是 int?与 dbnull 不一样,并且Combobox不适合无效值. 我的datagridview combox,需要 dbnull . 我做到了: var machineComboList = this.eMDataSet1.Machines.Select(row => new { Key = (int?) row.MachineID, Value = row.Description }).ToList(); int? nullValue = DBNull.Value; machineComboList.Add(new { Key = nullValue, Value = "All" }); 我想将dbnull值放入"键"中.使用 int?不起作用. 相关: c#
12 2024-04-26
编程技术问答社区
我怎样才能预先阻止将DBNull赋值给一个int的尝试?
以下代码: foreach (DataRow fillRateDataRow in dtFillRateResults.Rows) { . . . var frbdbc = new FillRateByDistributorByCustomer { ShortName = fillRateDataRow["ShortName"].ToString(), Unit = fillRateDataRow["Unit"].ToString(), CustNumber = fillRateDataRow["Custno"].ToString(), MemberItemCode = fillRateDataRow["MemberItemCode"].ToString(), Qty = Convert.ToInt32(fillRateDataRow["Qty"]), QtySh
14 2024-04-26
编程技术问答社区
在插入时从SQL服务器获取SCOPE_IDENTITY
我猜现在为时已晚,我太累了,无法看到我在做错了什么.这是我正在尝试的: int imageId = imageDal.AddImage(new SqlParameter[] { new SqlParameter("@IMAGE_ID", SqlDbType.Int, Int32.MaxValue, ParameterDirection.Output, true, 0, 0,"IMAGE_ID", DataRowVersion.Current,DBNull.Value), new SqlParameter("@IMAGE", SqlDbType.Image, 11, ParameterDirection.Input, true, 0, 0,"IMAGE", DataRowVersion.Current,image) }); public in
6 2024-04-24
编程技术问答社区
Informix(C#)。如何正确设置/取消一个blob字段?
IBM Informix SDK: 语句:Update mytable set myblobcolumn = ? where myid = 1; using (IfxConnection conn = GetIfxConnection()) using (IfxCommand cmd = new IfxCommand(updateSql, conn)) { var param = new IfxParameter("myblobcolumn", IfxType.Blob) { IsNullable = true }; cmd.Parameters.Add(param).Value = DBNull.Value cmd.ExecuteNonQuery(); //ERROR [HY000] [Informix .NET provider][Informix]Illegal attempt to use Text/Byte host variable. }
22 2024-04-23
编程技术问答社区
把一个空的东西投进去?
我今天与一位同事进行了有趣的讨论.我们正在辩论C#中的两种代码. 代码片段1: if(!reader.IsDBNull(2)) { long? variable1 = reader.GetInt64(2) } 代码段2: long variable1 = reader.IsDBNull(2) ? (long?) null : reader.GetInt64(2) 问题是:将无效的时间变成无效的长时间是一个好习惯吗?还是您愿意使用传统的if语句避免施放null可为无效的长时间. 解决方案 表达式(type?)null,default(type?)和new Nullable()最终被编译到相同的opcodes中: long? x = (long?)null; long? y = default(long?); long? z = new Nullable(); 变成:
10 2024-04-20
编程技术问答社区
对ExecuteScalar的DBNull检查
命令的存储过程可以返回null.是否正确检查返回值是否为null或我也应该检查OBJ是否为null? object obj = command.ExecuteScalar(); int id = -1; if (DBNull.Value == obj) { id = Convert.ToInt32(obj ); } 解决方案 您可能想将您的if statement更改为 if (obj != null && DBNull.Value != obj) { ... } 现在,您正在尝试转换obj == DBNull.Value. 其他解决方案 如果没有结果,您的查询可以返回null,因此在一般情况下,您应该检查它.例如: SELECT TOP 1 Col1 FROM TABLE WHERE ... 上述查询可以返回: null如果没有行与Where子句 DBNull.Value如果第一个匹配行在col1中具有零值 其他非零值
2 2024-04-19
编程技术问答社区
DBNull怎么可能不等于DBNull
我有以下代码 的行 if (DBNull.Value.Equals(o) || o != null) 其中o是object o in row.ItemArray我一直遇到 - > 的错误 Xml type "List of xdt:untypedAtomic" does not support a conversion from Clr type "DBNull" to Clr type "String". 我不明白的是,当我逐步浏览代码时,if应该抓住这一点并执行我的替代操作,但事实并非如此? 有人可以为我提供一些灯. 谢谢! 解决方案 尝试使用 convert.isdbnull 方法. 其他解决方案 我认为您的问题是实际上 DBNull.Value == null //is always false dbnull是一个特殊的类,用于比较从数据库返回的值,因此您实际上需要检查零条件和dbnull.value.如果您的数组包
14 2024-04-19
编程技术问答社区
从IDataReader中获取数值的空值安全方式
(LocalVariable)ABC.string(Name) = (IDataReader)dataReader.GetString(0); 这个 name 值来自数据库. 如果此 name 是 null 在阅读时会引发例外? 我在这里手动做一些条件.我不想写手动条件来检查我的所有变量. 我现在正在做这样的事情. String abc = dataReader.GetValue(0); if (abc == null) //assigning null else //assigning abc value 有类似的东西我们可以为此编写扩展方法吗? 解决方案 这是几对扩展方法,可以很好地包含您所有关注点,围绕从数据读取器中检索强烈键入的值.如果值为dbnull,则将返回该类型的默认值.对于string,这是一个类,将返回null.如果字段为int,则将返回0.此外,如果您期望int?,例如从可无效的int字段中,null将被返回.
2 2024-04-18
编程技术问答社区
SqlDataReader 检查空值的最佳方法 -sqlDataReader.IsDBNull vs DBNull.Value
我想从数据库中检索十进制值,我想知道哪种建议检查null值的推荐方法. 我已经在 msdn -dbnull.value field 很少使用此检查. 因此,reader.IsDBNull是检查nulls的最佳/最有效方法吗? 我创建了2种示例方法: public static decimal? GetNullableDecimal(SqlDataReader reader, string fieldName) { if (reader[fieldName] == DBNull.Value) { return null; } return (decimal)reader[fieldName]; } public static decimal? GetNullableDecimal_2(SqlDataReader reader, string fieldName) { if (reader.IsDBNull(r
10 2024-04-18
编程技术问答社区
如何管理解析DateTime的空对象,以便与ADO.NET作为DBNULL使用。
我有两个DateTime对象,生育日期和Hiredate.它们被正确格式化为字符串,当我将它们传递到数据访问层时,需要将它们解析到DateTime对象中. DateTime hD = DateTime.Parse(hire); DateTime bD = DateTime.Parse(birth); //incase of a datestring being passed through dateStringPassed = "7/2/1969"; 但有时,字符串hire和birth为空或空的"",如果代码是这样运行的,我会从解析一个空字符串中获得一个FormateXception错误.如何管理空解析,并允许DateTime(如果为空或空,则为DBNull.Value)? 我仍然无法管理用户没有通过日期的字符串,然后解析崩溃了我的代码. 我的出生日期参数如下,并检查变量(如果为null),请使用dbnull.value. 解决方案
14 2024-04-18
编程技术问答社区
如何通过列名检查MySqlDataReader中的NULL?
如何在Open MySqlDataReader中检查一个NULL值? 以下内容不起作用;它总是击中else: if (rdr.GetString("timeOut") == null) { queryResult.Egresstime = "Logged in"; } else { queryResult.Egresstime = rdr.GetString("timeOut"); } rdr.IsDbNull(int i)仅接受列号,而不接受名称. 解决方案 var ordinal = rdr.GetOrdinal("timeOut"); if(rdr.IsDBNull(ordinal)) { queryResult.Egresstime = "Logged in"; } else { queryResult.Egresstime = rdr.GetString(ordinal); }//if 或 if(Convert.IsDB
16 2024-04-18
编程技术问答社区
操作符'??'不能应用于'string'和'System.DBNull'。
我有以下C#代码: sqlCommand.Parameters.AddWithValue("@Parameter", table.Value ?? DBNull.Value); ,但它引发了以下汇编错误: 操作员??不能应用于类型string和System.DBNull 的操作数 为什么编译器不允许此语法? 解决方案 两个操作数都必须是对象.使用显式演员: (object)table.Value ?? DBNull.Value; 其他解决方案 string和System.DBNull之间没有自动转换 sqlCommandObject.Parameters.AddWithValue("@Parameter", table.Value ?? (object)DBNull.Value); 其他解决方案 而不是使用dbnull.value,您可以使用convert.d
8 2024-04-17
编程技术问答社区
DbNull.Value和DbNull.Value.ToString()的区别
我想了解哪种用法是正确的? if(!string.IsNullOrEmpty(parentID)) cmd.Parameters.Add(new SqlParameter("@ParentSesID", parentID)); else cmd.Parameters.Add(new SqlParameter("@ParentSesID", DBNull.Value)); 或 if(!string.IsNullOrEmpty(parentID)) cmd.Parameters.Add(new SqlParameter("@ParentSesID", parentID)); else cmd.Parameters.Add(new SqlParameter("@ParentSesID", DBNull.Value.ToString())); 解决方案 cmd.Parameters.Add(new SqlParameter("@ParentSesID
14 2024-04-17
编程技术问答社区
将一个DBNULL值解析为双数
我使用以下行将datarow值转换为double. double.parse(Convert.ToString(datarow)); 如果datarow是DBNULL,我会得到以下例外: 'double.parse(convert.tostring(data))'抛出了一个例外'system.formatexception' 如何在不使用tryparse. 的情况下处理此操作 解决方案 另一种选择是检查datarow是否是DBNull: double d = datarow is DBNull ? 0 : double.Parse(Convert.ToString(datarow)); 这样,您无需检查DBNull.Value 其他解决方案 DBNull不能被施放或解析为double(或int,decimal等),因此您必须在尝试解析之前检查datarow是否是DBNull它.它应该是使用三元运算符的选择: doubleValue =
6 2024-04-16
编程技术问答社区
对象不能从DBNull分配到其他类型
我在数据库中获得最小数字.但是,当我的数据库中没有数据时,我会收到此错误. system.invalidcastException:"该对象不能分配给dbnull的其他类型.' 代码: SqlCommand cmd = new SqlCommand("SELECT MAX(GidenEvrakSira) FROM GidenEvrak", con); SqlCommand smd = new SqlCommand("Select Min(GidenEvrakSira) FROM GidenEvrak Where UserID is null", con); con.Open(); maxnum = Convert.ToInt32(cmd.ExecuteScalar()); minum = Convert.ToInt32(smd.ExecuteScalar()); con.Close(); 解决方案 jdweng建议在评论中有效
20 2024-04-16
编程技术问答社区
不能将类型'十进制?'隐式转换为'十进制'。
sdr是我的sqldatareader,我想检查小数类型的curprice值是否为null. inrec.curPrice = sdr.IsDBNull(7) ? (decimal?)null : sdr.GetDecimal(7); 这是我收到的错误消息: 不能隐式转换类型的"小数?"要"十进制".明确 存在转换(您是否错过了演员?) 我要去哪里,请有人告诉我. 解决方案 将curPrice转换为无效,或使用. 如果curPrice是类的属性,则 public decimal? curPrice { get; set; } 其他解决方案 decimal?指示它是 nullable 小数;您必须使用Value属性来获取实际值(如果存在,则通过HasValue确定). 我假设curPrice是一个不可用的十进制,在这种情况下,您还需要找出比从三元运算符的真实侧返回的更高价值. 其他解决方案 inrec.curPrice
4 2024-04-15
编程技术问答社区
Linq to DataTable-Canot cast DBNull
Linq的新手,如果这是基本的,则很抱歉.此查询正在抛出错误{"不能将dbnull.value施加到键入'system.int64'.请使用无效的类型."}当我枚举结果时. private void AddLevels(long rootid) { var results = from row in data.AsEnumerable() where row.Field("ParentID") == rootid select row; foreach (DataRow row in results) { //do stuff } } 列parentid的列确实接受nulls-我需要单独处理这些吗? edit2:仍然使用linq的实际解决方案. 编辑:我
22 2024-04-14
编程技术问答社区
如何从sqlreader中安全地将nullable结果转为int?
i有一个包含零值的表,我需要使用sqldatareader从表中获取数据.我不知道如何安全地将dbnull施加到int. 我目前以这种方式进行: ... reader = command.ExecuteReader(); while (reader.Read()) { int y = (reader["PublicationYear"] != null) ? Convert.ToInt32(reader["PublicationYear"]) : 0; ... } ... 但是,当出版物为null时,获得Object cannot be cast from DBNull to other types. 如何安全地获得值? 谢谢. 解决方案 您应该将reader["PublicationYear"]与DBNull.Value进行比较,而不是null. 其他解决方案 DBNull与null不同.您应该尝试这样的尝试: in
10 2024-04-13
编程技术问答社区
C# ADO.NET:空值和DbNull-是否有更有效的语法?
我有一个DateTime?我正在尝试使用DbParameter插入字段.我正在创建类似的参数: DbParameter datePrm = updateStmt.CreateParameter(); datePrm.ParameterName = "@change_date"; ,然后我想在考虑nulls. 时将DateTime?的值放入dataPrm.Value中 我以为最初会很聪明: datePrm.Value = nullableDate ?? DBNull.Value; 但由于错误而失败 操作员'??'不能应用于类型的" system.datetime?"的操作数?和'system.dbnull' 所以我想只有第二个参数是第一个参数的不可删除版本时才起作用.所以我去了: datePrm.Value = nullableDate.HasValue ? nullableDate.Value : DBNull.Value; 但这也不起作用:
16 2024-04-13
编程技术问答社区
二进制数据类型参数中的空值
如何在参数varbinary datatype中添加零值? 执行以下代码时: using (SqlConnection myDatabaseConnection1 = new SqlConnection(myConnectionString.ConnectionString)) { using (SqlCommand mySqlCommand = new SqlCommand("INSERT INTO Employee(EmpName, Image) Values(@EmpName, @Image)", myDatabaseConnection1)) { mySqlCommand.Parameters.AddWithValue("@EmpName", textBoxEmpName.Text); mySqlCommand.Parameters.AddWithValue("@Image", DBNull.Value);
10 2024-04-12
编程技术问答社区