我有一個方法,從文本框中獲取值並將它們插入到數據庫中。 如何從只有文本輸入的文本框中解析值?如何包含不是NULL的文本框中的值?
例如,如果文本框4,5 6是空的,那麼我不希望它們被解析爲插入方法。
這是我寫的將一個答案插入到數據庫中的內容。我如何修改它以僅包含那些不爲空的文本框?
<div id="answer_wrapper">
<div class="answer">
<h3 class="new">Answer 1</h3>
<asp:TextBox ID="AnswerBox1" runat="server" CssClass="form" Width="300px"></asp:TextBox>
</div> <!-- end answer -->
<div class="answer">
<h3 class="new">Answer 2</h3>
<asp:TextBox ID="AnswerBox2" runat="server" CssClass="form" Width="300px"></asp:TextBox>
</div> <!-- end answer -->
<div class="answer">
<h3 class="new">Answer 3</h3>
<asp:TextBox ID="AnswerBox3" runat="server" CssClass="form" Width="300px"></asp:TextBox>
</div> <!-- end answer -->
<div class="answer">
<h3 class="new">Answer 4</h3>
<asp:TextBox ID="AnswerBox4" runat="server" CssClass="form" Width="300px"></asp:TextBox>
</div> <!-- end answer -->
<div class="answer">
<h3 class="new">Answer 5</h3>
<asp:TextBox ID="AnswerBox5" runat="server" CssClass="form" Width="300px"></asp:TextBox>
</div> <!-- end answer -->
<div class="answer">
<h3 class="new">Answer 6</h3>
<asp:TextBox ID="AnswerBox6" runat="server" CssClass="form" Width="300px"></asp:TextBox>
</div> <!-- end answer -->
protected void FinishQnrButton_Click(object sender, EventArgs e)
{
int QuestionnaireId = (int)Session["QuestionnaireID"];
SendData = new OsqarSQL();
int questionId = SendData.InsertQuestions(QuestionName.Text, Int32.Parse(QuestnType.SelectedValue), QuestionnaireId);
int answerId = SendData.InsertAnswer(AnswerBox1.Text, questionId, QuestionnaireId);
Response.Redirect("~/buildq/Confirm_Questionnaire.aspx");
} // End NewQNRButton_Click
public int InsertAnswer(string AnswerTitle, int QuestionID, int QuestionnaireID)
{
int returnValue = 0;
SqlCommand myCommand = new SqlCommand("NewAnswer", _productConn);
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.Add(new SqlParameter("@ANSWERTITLE", SqlDbType.NVarChar));
myCommand.Parameters.Add(new SqlParameter("@QUESTION_ID", SqlDbType.Int));
myCommand.Parameters.Add(new SqlParameter("@QUEST_ID", SqlDbType.Int));
myCommand.Parameters.Add("@ANSWER_ID", SqlDbType.Int, 0, "ANSWER_ID");
myCommand.Parameters["@ANSWER_ID"].Direction = ParameterDirection.Output;
myCommand.Parameters[0].Value = AnswerTitle;
myCommand.Parameters[1].Value = QuestionID;
myCommand.Parameters[2].Value = QuestionnaireID;
_productConn.Open();
myCommand.ExecuteNonQuery();
returnValue = (int)myCommand.Parameters["@ANSWER_ID"].Value;
_productConn.Close();
return returnValue;
}
請注意,「textbox.Text'屬性值將永遠不會爲空。我推測這個string.Empty(甚至只是* whitespace *)就是你真正想要避免的。 – 2012-01-04 18:15:22
如果我正確理解你的問題你可以用string.IsNullOrEmpty(AnswerBox4.Text)測試一個文本框.Text value屬性並決定 – TheBoyan 2012-01-04 18:15:27
你有什麼問題或錯誤..?看起來像你還需要有一個DBNull分配作爲參數值的一部分,如果你沒有檢查他們..也改變myCommand.Parameters myCommand.Parameters.AddWithValue – MethodMan 2012-01-04 18:16:12