gridview中的CommandText属性未初始化错误

本文关键字:初始化 错误 属性 中的 CommandText gridview | 更新日期: 2023-09-27 17:50:53

我有一个gridview,我想检查插入行,但我看到这个错误:

CommandText属性没有初始化。

我猜我关于strArrays的错误。我已经为此工作了两天了

如何修复?

StringBuilder stringBuilder = new StringBuilder(string.Empty);
SqlConnection sqlConnection = new  SqlConnection(ConfigurationManager.ConnectionStrings["SiteSqlServer"].ConnectionString.ToString());
SqlCommand sqlCommand = new SqlCommand();
for (int i = 0; i < GridView1.Rows.Count; i++)
{
   int type = 2;
   CheckBox chkUpdate = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("chkSelect");
   TextBox txtAmount = (TextBox)GridView1.Rows[i].Cells[5].FindControl("txtAmount");
   if (chkUpdate != null)
   {
      if (chkUpdate.Checked)
      {
         string strID = GridView1.Rows[i].Cells[1].Text;
         GridView1.Rows[i].FindControl("txtLocation")).Text;
         string text = this.GridView1.Rows[i].Cells[1].Text;
         string[] strArrays = new string[] { "INSERT INTO [OrderCancel]
                                             ([OrderID], 
                                              [Message], 
                                              [Type],
                                              [RelationProductID],
                                              [Amount]) 
                                              VALUES(" , 
                                              Request.QueryString["o"] ,
                                              ",'" , txtWhy.Text , 
                                              "',",type.ToString(),",
                                              " , strID , "," , 
                                              txtAmount.Text , ");" };
         stringBuilder.Append(string.Concat(strArrays));
         //append update statement in stringBuilder 
         stringBuilder.Append(string.Concat(strArrays));
      }
   }
   try
   {
      try
      {
         sqlCommand.CommandType = CommandType.Text;
         sqlCommand.CommandText = stringBuilder.ToString();
         sqlCommand.Connection = sqlConnection;
         sqlConnection.Open();
         sqlCommand.ExecuteNonQuery();
      }
      catch (SqlException sqlException)
      {
         throw new Exception(string.Concat("Error in Updation",
                                            sqlException.Message));
      }
   }
   finally
   {
      sqlConnection.Close();
   }     

gridview中的CommandText属性未初始化错误

您的代码可以清理,您可以做以下操作:

private readonly string dbConnection = "...";
private const string query = "... Column = @Column";

为简洁起见,我添加了,它将与您的连接字符串和您的查询参数相关联。

var message = String.Empty;
using(var connection = new SqlConnection(dbConnection))
     using(var command = new SqlCommand(query, dbConnection))
     {
          connection.Open();
          command.CommandType =  CommandType.Text;
          command.Parameters.Add("@Column", SqlDbType.NVarChar).Value = message;
          command.ExecuteNonQuery();
     }

因此,这个小片段将在一个方法中,该方法将传递网格中数据的模型。然后,当你从网格传递一个值时,你将建立你的模型并传递给将写入数据库的方法。

此外,当您使用StringBuilder时,您还需要调用ToString();以确保它是string而不是StringBuilder

如果没有设置commandText属性,通常会发生此错误。看看你的代码,看起来你的stringbuilder变量没有被设置。你有没有试过在你的"chkUpdate"中设置一个断点?检查"循环?如果是,你可以张贴SQL得到构建在你的循环