C# 不希望textbox在datatable中输入空值

C# 不希望textbox在datatable中输入空值,c#,asp.net,visual-studio,C#,Asp.net,Visual Studio,我有一个数据表,它已经有了一些值,加上它正在从下面的文本框中获取值 现在我的问题是当我没有在文本框中输入值时,它仍然会在数据表中输入。 我不想让它那样做 代码可以在任何机器上运行。。。有什么建议吗 谢谢 public partial class WebForm6 : System.Web.UI.Page { DataTable dt; protected void Page_Load(object sender, EventArgs e) { // I

我有一个数据表,它已经有了一些值,加上它正在从下面的文本框中获取值

现在我的问题是当我没有在文本框中输入值时,它仍然会在数据表中输入。 我不想让它那样做

代码可以在任何机器上运行。。。有什么建议吗

谢谢

public partial class WebForm6 : System.Web.UI.Page
{
    DataTable dt;
    protected void Page_Load(object sender, EventArgs e)
    {


        // Initialize a DataTable

        if (!Page.IsPostBack)
        {
            dt = new DataTable();
            // Initialize DataColumn

            DataColumn myDataColumn = new DataColumn();



            //// initialize a new instance of DataColumn to add another column with different properties.

            //myDataColumn = new DataColumn();

            myDataColumn.ColumnName = "firstName";
            // set DataType property of the column as String

            myDataColumn.DataType = System.Type.GetType("System.String");

            // Add and Create a Second DataColumn

            dt.Columns.Add(myDataColumn);


            // create a new row using NewRow() function of DataTable.

            // dataRow object will inherit the schema of myDataTable to create a new row

            DataRow dataRow = dt.NewRow();

            dataRow["firstName"] = "John";

            // add new data row to the data table.

            dt.Rows.Add(dataRow);

            // similarly adds the second row to the DataTable

            dataRow = dt.NewRow();

            dataRow["firstName"] = "Will";
            dt.Rows.Add(dataRow);
            Session["data"] = dt;

            GridView1.DataSource = dt;
            GridView1.DataBind();

        }
    }

 protected void btnSubmit_Click(object sender, EventArgs e)
    {

  if (Session["Data"] == null)
        {
            dt.Columns.Add("firstName");
            BindtoGridViewFromTextBoxes(dt);
            ClearControls();
        }
    else
    {
        dt = (DataTable)Session["Data"];
        BindtoGridViewFromTextBoxes(dt);
        ClearControls();
    }
    } private void ClearControls()
  {
  txtName.Text = String.Empty;

   }

 private void BindtoGridViewFromTextBoxes(DataTable dt)
     {
        DataRow dr;
        dr = dt.NewRow();

        dr["firstName"] = txtName.Text.ToString();
        dt.Rows.Add(dr);
        Session["Data"] = dt;

        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
和在.aspx页面上

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">



任何帮助…?

将您的方法更改为:

private void BindtoGridViewFromTextBoxes(DataTable dt)
{
    if (!String.IsNullOrEmpty(txtname.Text))
    {
        DataRow dr = dt.NewRow();
        dr["firstName"] = txtName.Text;
        dt.Rows.Add(dr);
        Session["Data"] = dt;
    }
    GridView1.DataSource = dt;
    GridView1.DataBind(); 
} 

只是想添加一个想法…验证用户输入呢?或者为你的应用定义“空白”的含义。只是一个想法。没有会话数据总是一些数据,我有一个if条件检查。。。即使它是空的,它也不做它应该做的事情。。。如果你能试试看。。。并调试按钮提交部分。。你会明白我在说什么。。谢谢
private void BindtoGridViewFromTextBoxes(DataTable dt)
{
    if (!String.IsNullOrEmpty(txtname.Text))
    {
        DataRow dr = dt.NewRow();
        dr["firstName"] = txtName.Text;
        dt.Rows.Add(dr);
        Session["Data"] = dt;
    }
    GridView1.DataSource = dt;
    GridView1.DataBind(); 
}