Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一个datalist update命令是否可以更新两个数据列表?_C#_Mysql_Asp.net_Sql - Fatal编程技术网

C# 一个datalist update命令是否可以更新两个数据列表?

C# 一个datalist update命令是否可以更新两个数据列表?,c#,mysql,asp.net,sql,C#,Mysql,Asp.net,Sql,一个datalist update命令可以对两个datalist进行更新吗 我有“datalist1”,里面嵌套了“datalist2” 我在datalist1上有一个“更新”命令按钮(它只更新datalist1中的数据) 我在datalist2上有一个单独的“更新”命令按钮(它只更新datalist2中的数据) 是否可以使用datalist1“update”命令按钮同时更新datalist1和datalist2?不需要两个单独的更新按钮,也不需要触摸表格和标准程序 我有: protec

一个datalist update命令可以对两个datalist进行更新吗

我有“datalist1”,里面嵌套了“datalist2”

我在datalist1上有一个“更新”命令按钮(它只更新datalist1中的数据)

我在datalist2上有一个单独的“更新”命令按钮(它只更新datalist2中的数据)

是否可以使用datalist1“update”命令按钮同时更新datalist1和datalist2?不需要两个单独的更新按钮,也不需要触摸表格和标准程序

我有:

    protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
    HiddenField45.Value = "No";

    Label61.Text = HiddenField19.Value;
    Label91.Text = HiddenField20.Value;

    if (Label91.Text == "")
    {
        Label91.Text = "a1 Like '' OR ";
        GridView1.Columns[10].Visible = false;
    }
    else
    {

    }

    Label101.Text = Label91.Text.Remove(Label91.Text.Length - 4);


    //datalist1 attributes
    String a1 = ((Label)e.Item.FindControl("a1Label")).Text;
    String b1 = ((Label)e.Item.FindControl("b1Label")).Text;
    String c1 = ((DropDownList)e.Item.FindControl("c1DropDownList")).Text;
    String d1 = ((TextBox)e.Item.FindControl("d1TextBox")).Text;


    //datalist2 attributes
    String a2 = ((Label)e.Item.FindControl("a2Label")).Text;
    String b2 = ((Label)e.Item.FindControl("b2Label")).Text;
    String c2 = ((DropDownList)e.Item.FindControl("c2DropDownList")).Text;
    String d2 = ((TextBox)e.Item.FindControl("d2TextBox")).Text;




    string str = "UPDATE table1 SET a1=@a1, b1=@b1, c1=@c1, d1=@d1 WHERE a1=@a1 AND b1=@b1";

    using (MySqlConnection con = new MySqlConnection("Server=mysql.xxxxxxxx;Port=xxxx; Database=xxxxxxx; User=xxxxxxx; Password=xxxxxxx;"))
    {
        using (MySqlCommand cmd = new MySqlCommand(str, con))
        {
            cmd.CommandType = CommandType.Text;
            cmd.Parameters.AddWithValue("@a1", a1);
            cmd.Parameters.AddWithValue("@b1", b1);
            cmd.Parameters.AddWithValue("@c1", c1);
            cmd.Parameters.AddWithValue("@d1", d1);
            con.Open();
            cmd.ExecuteNonQuery();

        }
    }


//datalist2 update()

    string str2 = "UPDATE table2 SET a2=@a2, b2=@b2, c2=@c2, d2=@d2 WHERE a2=@a2 AND b2=@b2";

    using (MySqlConnection con2 = new MySqlConnection("Server=mysql.xxxxxxx;Port=xxxx; Database=xxxxxxx; User=xxxx; Password=xxxxxx;"))
    {
        using (MySqlCommand cmd2 = new MySqlCommand(str2, con2))
        {
            cmd2.CommandType = CommandType.Text;
            cmd2.Parameters.AddWithValue("@a2", a2);
            cmd2.Parameters.AddWithValue("@b2", b2);
            cmd2.Parameters.AddWithValue("@c2", c2);
            cmd2.Parameters.AddWithValue("@d2", d2);
            con2.Open();
            cmd2.ExecuteNonQuery();

        }



    }



    for (int i = 0; i < GridView3.Rows.Count; i++)
    {
        GridView grid = (GridView)GridView3.Rows[i].Cells[21].FindControl("GridView8");
        grid.DataBind();
    } 
}
受保护的无效DataList1\u UpdateCommand(对象源,DataListCommandEventArgs e)
{
HiddenField45.Value=“否”;
Label61.Text=HiddenField19.Value;
Label91.Text=HiddenField20.Value;
如果(Label91.Text==“”)
{
Label91.Text=“a1类似于”或”;
GridView1.Columns[10]。Visible=false;
}
其他的
{
}
Label101.Text=Label91.Text.Remove(Label91.Text.Length-4);
//datalist1属性
字符串a1=((标签)e.Item.FindControl(“a1Label”).Text;
字符串b1=((标签)e.Item.FindControl(“b1Label”).Text;
字符串c1=((DropDownList)e.Item.FindControl(“c1DropDownList”)).Text;
字符串d1=((文本框)e.Item.FindControl(“d1TextBox”)).Text;
//datalist2属性
字符串a2=((标签)e.Item.FindControl(“a2Label”).Text;
字符串b2=((标签)e.Item.FindControl(“b2Label”).Text;
字符串c2=((DropDownList)e.Item.FindControl(“c2DropDownList”)).Text;
字符串d2=((TextBox)e.Item.FindControl(“d2TextBox”)).Text;
string str=“更新表1集合a1=@a1,b1=@b1,c1=@c1,d1=@d1,其中a1=@a1和b1=@b1”;
使用(MySqlConnection con=newmysqlconnection(“服务器=mysql.xxxxxxxx;端口=xxxx;数据库=xxxxxxx;用户=xxxxxxx;密码=xxxxxxx;”)
{
使用(MySqlCommand cmd=newmysqlcommand(str,con))
{
cmd.CommandType=CommandType.Text;
cmd.Parameters.AddWithValue(“@a1”,a1);
cmd.Parameters.AddWithValue(“@b1”,b1);
cmd.Parameters.AddWithValue(“@c1”,c1);
cmd.Parameters.AddWithValue(“@d1”,d1);
con.Open();
cmd.ExecuteNonQuery();
}
}
//datalist2更新()
string str2=“更新表2集合a2=@a2,b2=@b2,c2=@c2,d2=@d2,其中a2=@a2和b2=@b2”;
使用(MySqlConnection con2=newmysqlconnection(“服务器=mysql.xxxxxxx;端口=xxxx;数据库=xxxxxxx;用户=xxxx;密码=xxxxxx;”)
{
使用(MySqlCommand cmd2=新的MySqlCommand(str2,con2))
{
cmd2.CommandType=CommandType.Text;
cmd2.Parameters.AddWithValue(“@a2”,a2);
cmd2.Parameters.AddWithValue(“@b2”,b2);
cmd2.Parameters.AddWithValue(“@c2”,c2);
cmd2.Parameters.AddWithValue(“@d2”,d2);
con2.Open();
cmd2.ExecuteNonQuery();
}
}
对于(int i=0;i
但是,我得到一个错误“System.NullReferenceException:对象引用未设置为对象的实例”

对于datalist2中的属性


感谢

DataListCommandEventArgs e,这里e指向datalist1。因此,它无法获取datalist2的引用。由于这个原因,您将获得nullreference异常

尝试如下。。。我希望这能奏效

protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
HiddenField45.Value = "No";

Label61.Text = HiddenField19.Value;
Label91.Text = HiddenField20.Value;

if (Label91.Text == "")
{
    Label91.Text = "a1 Like '' OR ";
    GridView1.Columns[10].Visible = false;
}
else
{

}

Label101.Text = Label91.Text.Remove(Label91.Text.Length - 4);


//datalist1 attributes
String a1 = ((Label)e.Item.FindControl("a1Label")).Text;
String b1 = ((Label)e.Item.FindControl("b1Label")).Text;
String c1 = ((DropDownList)e.Item.FindControl("c1DropDownList")).Text;
String d1 = ((TextBox)e.Item.FindControl("d1TextBox")).Text;


//datalist2 attributes
 String a2 = ((Label)DataList2.Items[0].FindControl("a2Label")).Text; 
 String b2 = ((Label)DataList2.Items[1].FindControl("b2Label")).Text;
 String c2 = ((DropDownList)DataList2.Items[2].FindControl("c2DropDownList")).Text;
 String d2 = ((TextBox)DataList2.Items[3].FindControl("d2TextBox")).Text;
//here [0],[1],[2],[3] denote row numbers.



string str = "UPDATE table1 SET a1=@a1, b1=@b1, c1=@c1, d1=@d1 WHERE a1=@a1 AND b1=@b1";

using (MySqlConnection con = new MySqlConnection("Server=mysql.xxxxxxxx;Port=xxxx; Database=xxxxxxx; User=xxxxxxx; Password=xxxxxxx;"))
{
    using (MySqlCommand cmd = new MySqlCommand(str, con))
    {
        cmd.CommandType = CommandType.Text;
        cmd.Parameters.AddWithValue("@a1", a1);
        cmd.Parameters.AddWithValue("@b1", b1);
        cmd.Parameters.AddWithValue("@c1", c1);
        cmd.Parameters.AddWithValue("@d1", d1);
        con.Open();
        cmd.ExecuteNonQuery();

    }
}


//datalist2 update()

string str2 = "UPDATE table2 SET a2=@a2, b2=@b2, c2=@c2, d2=@d2 WHERE a2=@a2 AND b2=@b2";

using (MySqlConnection con2 = new MySqlConnection("Server=mysql.xxxxxxx;Port=xxxx; Database=xxxxxxx; User=xxxx; Password=xxxxxx;"))
{
    using (MySqlCommand cmd2 = new MySqlCommand(str2, con2))
    {
        cmd2.CommandType = CommandType.Text;
        cmd2.Parameters.AddWithValue("@a2", a2);
        cmd2.Parameters.AddWithValue("@b2", b2);
        cmd2.Parameters.AddWithValue("@c2", c2);
        cmd2.Parameters.AddWithValue("@d2", d2);
        con2.Open();
        cmd2.ExecuteNonQuery();

    }



}



for (int i = 0; i < GridView3.Rows.Count; i++)
{
    GridView grid = (GridView)GridView3.Rows[i].Cells[21].FindControl("GridView8");
    grid.DataBind();
} 
}
受保护的无效DataList1\u UpdateCommand(对象源,DataListCommandEventArgs e)
{
HiddenField45.Value=“否”;
Label61.Text=HiddenField19.Value;
Label91.Text=HiddenField20.Value;
如果(Label91.Text==“”)
{
Label91.Text=“a1类似于”或”;
GridView1.Columns[10]。Visible=false;
}
其他的
{
}
Label101.Text=Label91.Text.Remove(Label91.Text.Length-4);
//datalist1属性
字符串a1=((标签)e.Item.FindControl(“a1Label”).Text;
字符串b1=((标签)e.Item.FindControl(“b1Label”).Text;
字符串c1=((DropDownList)e.Item.FindControl(“c1DropDownList”)).Text;
字符串d1=((文本框)e.Item.FindControl(“d1TextBox”)).Text;
//datalist2属性
字符串a2=((标签)DataList2.Items[0]。FindControl(“a2Label”)。文本;
字符串b2=((标签)DataList2.Items[1]。FindControl(“b2Label”)。文本;
字符串c2=((DropDownList)DataList2.Items[2]。FindControl(“c2DropDownList”))。文本;
字符串d2=((文本框)DataList2.Items[3]。FindControl(“d2TextBox”))。文本;
//此处[0]、[1]、[2]、[3]表示行号。
string str=“更新表1集合a1=@a1,b1=@b1,c1=@c1,d1=@d1,其中a1=@a1和b1=@b1”;
使用(MySqlConnection con=newmysqlconnection(“服务器=mysql.xxxxxxxx;端口=xxxx;数据库=xxxxxxx;用户=xxxxxxx;密码=xxxxxxx;”)
{
使用(MySqlCommand cmd=newmysqlcommand(str,con))
{
cmd.CommandType=CommandType.Text;
cmd.Parameters.AddWithValue(“@a1”,a1);
cmd.Parameters.AddWithValue(“@b1”,b1);
cmd.Parameters.AddWithValue(“@c1”,c1);
cmd.Parameters.AddWithValue(“@d1”,d1);
con.Open();
cmd.ExecuteNonQuery();
}
}
//datalist2更新()
string str2=“更新表2集合a2=@a2,b2=@b2,c2=@c2,d2=@d2,其中a2=@a2和b2=@b2”;
使用(MySqlConnection con2=newmysqlconnection(“服务器=mysql.xxxxxxx;端口=xxxx;数据库=xxxxxxx;用户=xxxx;密码=xxxxxx;”)
{
使用(MySqlCommand cmd2=新的MySqlCommand(str2,con2))
{
cmd2.CommandType=CommandType.Text;
cmd2.Parameters.AddWithValue(“@a2”,a2);
cmd2.Parameters.AddWithValue(“@b2”,b2);
cmd2.Parameters.AddWithValue(“@c2”,c2);
cmd2.Parameters.AddWithValue(“@d2”,d2);
con2.Open();
cmd2.ExecuteNonQuery();
}
}
对于(int i=0;i
这里,使用DataList的行编号访问DataList2属性。

Yes!,只需打开ne