- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道 Null
值无法转换为字符串值,因此我浏览了整个网络,确实找到了一些答案,例如使用 IsDBNull()
但我可以'似乎没有让它发挥作用。我是新手,所以请耐心等待。我只需要在可为空的字段为 Null
时将其填充为 ""
的正确 TextBox
即可。如果您能帮助我掌握正确的语法,那就太好了。可能为Null
(或不是)的字段是projects_project_number
,我回到原来的代码来展示我开始的内容。这是:
ConnectionStringSettings conSettings = ConfigurationManager.ConnectionStrings["shopmanagerConnectionString1"];
MySqlConnection con = new MySqlConnection(conSettings.ToString());
string Query = "select * from shopmanager.quotes where idquotes = @search_quote_number;";
MySqlCommand cmdDataBase = new MySqlCommand(Query, con);
MySqlDataReader myReader;
try
{
con.Open();
cmdDataBase.Parameters.AddWithValue("@search_quote_number", search_quote_number.Text);
myReader = cmdDataBase.ExecuteReader();
while (myReader.Read())
{
string sClient_number = myReader.GetString("client_info_client_number");
string sId = myReader.GetInt16("idquotes").ToString();
string sClientName = myReader.GetString("client_name");
string spredicted_start_date = myReader.GetString("predicted_start_date");
string sdate_required = myReader.GetString("requested_date");
string sdate_predicted = myReader.GetString("delivery_expected_date");
string sdate_received = myReader.GetString("date_received");
string squote_amount = myReader.GetString("quote_amount");
string sproject_number = myReader.GetString("projects_project_number");
quote_id.Text = sId;
client_name.Text = sClientName;
predicted_start_date.Text = spredicted_start_date;
date_required.Text = sdate_required;
date_predicted.Text = sdate_predicted;
date_received.Text = sdate_received;
quote_amount.Text = squote_amount;
project_number.Text = sproject_number;
temp_client_id.client_id = sClient_number;
search_quote_number.Text = "";
}
cmdDataBase.Parameters.Clear();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
con.Close();
最佳答案
使用 DBNull请遵循 MSDN 上关于 Is.DBNull() 的指导
有多种方法可以使用DBNull
,但使用您在问题中给出的内容,最佳用途是:
string sproject_number = string.Empty;
if (!Convert.IsDBNull(myReader.GetString("projects_project_number"))) //check if value is not null
sproject_number = myReader.GetString("projects_project_number");
project_number.Text = sproject_number;
您还可以使用 SqlDataReader
.IsDBNull
的内置函数:
int columnIndex = myReader.GetOrdinal("projects_project_number"); //get column index
string sproject_number = string.Empty;
if (!myReader.IsDBNull(columnIndex)) //check if value is not null
sproject_number = myReader[columnIndex].ToString();
project_number.Text = sproject_number;
为了完整性:
int columnIndex = myReader.GetOrdinal();
string sproject_number = string.Empty;
if (DBNull.Value.Equals(myReader.GetString("projects_project_number"))) //check if value is not null
sproject_number = myReader.GetString("projects_project_number");
project_number.Text = sproject_number;
评估原始帖子中有关直接分配给文本框并整理所有内容的评论(并将其添加到 using
block 中是很好的做法):
ConnectionStringSettings conSettings = ConfigurationManager.ConnectionStrings["shopmanagerConnectionString1"]
string Query = "select * from shopmanager.quotes where idquotes = @search_quote_number;";
using(MySqlConnection con = new MySqlConnection(conSettings.ToString()))
{
using(MySqlCommand cmdDataBase = new MySqlCommand(Query, con))
{
cmdDataBase.Parameters.AddWithValue("@search_quote_number", search_quote_number.Text.Trim());
con.Open();
var myReader = cmdDataBase.ExecuteReader();
if(myReader.Read())
{
temp_client_id.client_id = myReader.GetString("client_info_client_number");
quote_id.Text = myReader.GetInt16("idquotes").ToString();
client_name.Text = myReader.GetString("client_name");
predicted_start_date.Text = myReader.GetString("predicted_start_date");
date_required.Text = sdate_required = myReader.GetString("requested_date");
date_predicted.Tex = myReader.GetString("delivery_expected_date");
date_received.Text = myReader.GetString("date_received");
quote_amount.Text = myReader.GetString("quote_amount");
project_number.Text = DBNull.Value.Equals(myReader.GetString("projects_project_number")) ? "" : myReader.GetString("projects_project_number");
search_quote_number.Text = "";
}
}
}
关于c# - 我应该使用 isDbNull 吗?在这种特殊情况下如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52175357/
我尝试使用 currentOrder.PONumber = (reader.IsDBNull("PONumber") ? "Geen klantreferentie" : reader.GetStri
我知道 Null 值无法转换为字符串值,因此我浏览了整个网络,确实找到了一些答案,例如使用 IsDBNull() 但我可以'似乎没有让它发挥作用。我是新手,所以请耐心等待。我只需要在可为空的字段为 N
我有这段代码可以从 SQL DB 中读取数据。 我不知道应该如何编辑它才能使用原始列名而不是列索引。 string query = "SELECT * FROM zajezd WHERE event=
我的代码比自动设置时长 2 倍 IsDBNull至 ""或者简单地将其翻转而不会出错。 这是我的代码: Dim conn As New SqlConnection conn.ConnectionStr
在 VB.Net 中你可以这样写: If Not IsDBNull(oCustomerNameDataRow(0)) Then cbCustomerName.Items.Add(oCustom
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
有没有更好的方法来编写这段代码.. MyObject pymt = new MyObject(); pymt.xcol1id= Convert.IsDBNull(row["col1id"]) ? 0
我想从数据库中检索十进制值,我想知道检查空值的推荐方法是什么。 我在 MSDN - DBNull.Value Field 上看到过很少使用此检查。 因此,reader.IsDBNull 是检查空值的最
我是一名优秀的程序员,十分优秀!