Вот мой текущий код для события OnRowUpdating
и инструкции SQL для обновления базы данных. Это бросает исключение:Я не могу заставить мой Gridview обновить мою базу данных SQL Server
System.NullReferenceException: Ссылка на объект не указывает на экземпляр object.error
Код:
protected void GV_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
TextBox txtSu = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox1"); // each textbox refers to the Am then Pm day
TextBox txtSu1 = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox2");// sun pm
TextBox txtMo = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox3");// mon am
TextBox txtMo1 = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox4");//mon pm
TextBox txtTu = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox5");
TextBox txtTu1 = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox6");
TextBox txtWe = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox7");
TextBox txtWe1 = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox8");
TextBox txtTh = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox9");
TextBox txtTh1 = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox10");
TextBox txtFr = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox11");
TextBox txtFr1 = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox12");
TextBox txtSa = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox13");
TextBox txtSa1 = (TextBox)GV.Rows[e.RowIndex].FindControl("txtBox14");
string sql = "UPDATE tblEMPLOYEE SET [email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected], " +
"[email protected] " +
"WHERE [email protected]";
CMethods.executeNonQuery(sql, "@ID", txtID.Text, "@AvSu", txtSu.Text, "@AvSu1", txtSu1.Text, "@AvMo", txtMo.Text, "@AvMo1", txtMo1.Text, "@AvTu", txtTu.Text, "@AvTu1", txtTu1.Text, "@AvWe", txtWe.Text, "@AvWe1", txtWe1.Text, "@AvTh", txtTh.Text, "@AvTh1", txtTh1.Text, "@AvFr", txtFr.Text, "@AvFr1", txtFr1.Text, "@AvSa", txtSa.Text, "@AvSa1", txtSa1.Text, "@ID", ID);
GV.EditIndex = -1;
fillUsers();
}
private void fillUsers()
{
GV.DataSource = CMethods.returnTable("SELECT * FROM tblEMPLOYEE WHERE EmployeeID=" + lblEmployee.Text);
GV.DataBind();
}
В Cmethods
public static class CMethods
{
public static DataTable returnTable(String CommandText, params Object[] values)
{
SqlConnection con =
new SqlConnection(ConfigurationManager.ConnectionStrings["Provider"].ConnectionString);
SqlCommand cmd = new SqlCommand(CommandText, con);
for (int i = 0; i < values.Length; i += 2)
{
cmd.Parameters.AddWithValue((String)values[i], values[i + 1]);
}
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds, "tbl");
return ds.Tables["tbl"];
}
public static bool executeNonQuery(String CommandText, params Object[] values)
{
bool bln = true;
SqlConnection con =
new SqlConnection(ConfigurationManager.ConnectionStrings["Provider"].ConnectionString);
SqlCommand cmd = new SqlCommand(CommandText, con);
for (int i = 0; i < values.Length; i += 2)
{
cmd.Parameters.AddWithValue((String)values[i], values[i + 1]);
}
try
{
con.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
bln = false;
}
finally
{
con.Close();
}
return bln;
}
public static double returnValue(string str)
{
double dblTemp = 0.0D;
string strTemp = String.Empty;
bool blnFirstDec = false;
bool blnFirstNeg = false;
for (int i = 0; i < str.Length; i++)
{
if (str.Substring(i, 1) == "-")
{
blnFirstNeg = true;
}
if (IsNumeric(str.Substring(i, 1)) || str.Substring(i, 1) == ".")
{
if (str.Substring(i, 1) == ".")
{
if (!blnFirstDec)
{
blnFirstDec = true;
strTemp += ".";
}
}
else
{
strTemp += str.Substring(i, 1);
}
}
}
не показывает Вам все части в код. Например, мы не знаем, что такое CMethods или что делают fillUsers()? Кроме того, таким образом вы используете executeNonQuery, является необычным. Трудно догадаться, что не так, как вы показали. – NoChance
Важная часть заключается в том, как работает ваш метод 'CMethods.executeNonQuery'. Включите это в свой вопрос, пожалуйста. – Corey
И, пожалуйста, также скажите ** ГДЕ ТОЧНО ** (какая строка кода) это исключение происходит ..... –