Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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# 从asp.net中的类将数据绑定到数据库_C#_Asp.net_Sql Server_Linq_Visual Studio - Fatal编程技术网

C# 从asp.net中的类将数据绑定到数据库

C# 从asp.net中的类将数据绑定到数据库,c#,asp.net,sql-server,linq,visual-studio,C#,Asp.net,Sql Server,Linq,Visual Studio,我正在从aspx web应用程序填充数据库 一切正常,除了我使用多个页面让用户将数据填入数据库之外 因此,我在一个class.cs文件中得到了这个方法: public class Botones { public void SaveCVInfo2(string varOne,string varTwo, string varThree) { using (ConexionGeneralDataContext db = new ConexionGeneralDataContext()) {

我正在从aspx web应用程序填充数据库

一切正常,除了我使用多个页面让用户将数据填入数据库之外

因此,我在一个class.cs文件中得到了这个方法:

public class Botones
{
public void SaveCVInfo2(string varOne,string varTwo, string  varThree)
{
using (ConexionGeneralDataContext db = new ConexionGeneralDataContext())
{
    Usuario_Web columna = new Usuario_Web();
    //Add new values to each fields
    columna.Nombre = varOne;
    columna.Apellido = varTwo;
    columna.Em_solicitado = varThree;
    //and the rest where the textboxes would have been


    //Insert the new Customer object
    db.Usuario_Web.InsertOnSubmit(columna);
    //Sumbit changes to the database
    db.SubmitChanges();
 }

 }
 }
这只是文件的一部分,它有更多的列,但不会改变示例

但是,我添加了另一个class.cs文件,以便从第二页的按钮引用它的方法。就像我之前在这篇文章中发布的一样:

public class Botones2
{
    public void SaveCVInfo3(string varOne, string varTwo, string varThree, string varFour, string varFive, string varSix, string varSeven,
    string varEight, string varNine, string varTen, string varEleven, string varTwelve, string varThirteen, string varFourteen, string varFifteen)
    {
        using (ConexionGeneralDataContext db = new ConexionGeneralDataContext())
        {
            Usuario_Web columna = new Usuario_Web();
            //Insert the new Customer object
            columna.Estatus = 1;
            columna.nombre_esposo = varOne;
            columna.profe_compa = varTwo;
            columna.emp_compa = varThree;
            columna.cargo_actual_compa = varFour;
            columna.Hijos = varFive;
            columna.Edades_hijos = varSix;
            columna.persona_depende_compa = varSeven;
            columna.afinidades = varEight;
            columna.Edades_depende = varNine;
            columna.nom_padre = varTen;
            columna.profesion_padre = varEleven;
            columna.tel_padre = varTwelve;
            columna.nom_madre = varThirteen;
            columna.profesion_madre = varFourteen;
            columna.tel_madre = varFifteen;

            db.Usuario_Web.InsertOnSubmit(columna);
            //Sumbit changes to the database
            db.SubmitChanges();
        }
    }
}
正如您所看到的,我在数据库中填充了更多的列,在同一个表中,问题是,当我从第二个页面向sql server提交数据时,它只创建了一个新的
Usuario\u web
,而没有我在第一个类中引用的列

我需要的是以某种方式绑定从第一页发送的数据。所以第一个类与所有其他类相关联,列填充在同一行中

如果有人知道如何处理这种情况,请告诉我

编辑

以下是我如何从asp按钮调用方法:

protected void Button1_Click(object sender, EventArgs e)
{
    Botones botones = new Botones();
    botones.SaveCVInfo2(nombre.Text, Apellidos.Text, EmpleoS.Text);
}
和SaveCVInfo3:

protected void Button1_Click(object sender, EventArgs e)
{
    Botones2 botones2 = new Botones2();
    botones2.SaveCVInfo3(nombre_compa.Text, Profesion_compa.Text, Emp_trabaja.Text, Cargo_compa.Text, RadioButtonList8.SelectedItem.Text, edades_sons.Text, num_depende.Text, Afinidad.Text, Edad_compa.Text, nom_padre.Text, profesion_compa_padre.Text, Tel_compa.Text, nom_madre.Text, profesion_compa_madre.Text, Tel_compa_madre.Text);
Response.Redirect("Envia3.aspx");
}

注意:下面是未测试的代码。

我将从SaveCVInfo2返回columna.ID:

public int  SaveCVInfo2(string varOne,string varTwo, string  varThree)
{
    int columnaId = 0;
    using (ConexionGeneralDataContext db = new ConexionGeneralDataContext())
    {
        Usuario_Web columna = new Usuario_Web();
        //Add new values to each fields
        columna.Nombre = varOne;
        columna.Apellido = varTwo;
        columna.Em_solicitado = varThree;
        //and the rest where the textboxes would have been    

        //Insert the new Customer object
        db.Usuario_Web.InsertOnSubmit(columna);
        //Sumbit changes to the database
        db.SubmitChanges();
        columnaId = columna.ID;
    }
    return columnaId;
}
并调用该方法,获取ID并保存在会话中,如下所示:

protected void Button1_Click(object sender, EventArgs e)
{
    int columnaId = 0;
    Botones botones = new Botones();
    columnaId = botones.SaveCVInfo2(nombre.Text, Apellidos.Text, EmpleoS.Text);
    Session["columnaId"] = columnaId.ToString();
}
现在,在调用SaveCVInfo3方法时,我可以传递columnaId:

protected void Button1_Click(object sender, EventArgs e)
{
    int columnaId = 0;
    if(Session["columnaId"] != null && int.TryParse(Session["columnaId"].ToString(), out columnaId)
    {
        Botones2 botones2 = new Botones2();
        botones2.SaveCVInfo3(columnaId, nombre_compa.Text, Profesion_compa.Text, Emp_trabaja.Text, Cargo_compa.Text, RadioButtonList8.SelectedItem.Text, edades_sons.Text, num_depende.Text, Afinidad.Text, Edad_compa.Text, nom_padre.Text, profesion_compa_padre.Text, Tel_compa.Text, nom_madre.Text, profesion_compa_madre.Text, Tel_compa_madre.Text);
        Response.Redirect("Envia3.aspx");
    }
}
在SaveCVInfo3方法中,我将通过Id获取对象,该Id已保存在上一页中,并编辑它,保存它:

public void SaveCVInfo3(int columnaId, string varOne, string varTwo, string varThree, string varFour, string varFive, string varSix, string varSeven,
    string varEight, string varNine, string varTen, string varEleven, string varTwelve, string varThirteen, string varFourteen, string varFifteen)
{
    using (ConexionGeneralDataContext db = new ConexionGeneralDataContext())
    {
        //You will need to add reference to Linq if not added already
        //Usuario_Web columna = new Usuario_Web();
        //Insert the new Customer object

        Usuario_Web columna = (Usuario_Web)db.Usuario_Webs.Find(columnaId);
        columna.Estatus = 1;
        columna.nombre_esposo = varOne;
        columna.profe_compa = varTwo;
        columna.emp_compa = varThree;
        columna.cargo_actual_compa = varFour;
        columna.Hijos = varFive;
        columna.Edades_hijos = varSix;
        columna.persona_depende_compa = varSeven;
        columna.afinidades = varEight;
        columna.Edades_depende = varNine;
        columna.nom_padre = varTen;
        columna.profesion_padre = varEleven;
        columna.tel_padre = varTwelve;
        columna.nom_madre = varThirteen;
        columna.profesion_madre = varFourteen;
        columna.tel_madre = varFifteen;

        //db.Usuario_Web.InsertOnSubmit(columna);
        //Sumbit changes to the database
        db.SubmitChanges();
    }
}
编辑如果Id不是主键,您可以更改此部分-

Usuario\u Web columna=(Usuario\u Web)db.Usuario\u Webs.Find(columnaId)
致:


Usuario\u Web columna=(Usuario\u Web)db.Usuario\u Web.Where(x=>x.ID==columnaId).FirstOrDefault()

您能说明如何从页面调用SaveCVInfo2和SaveCVInfo3吗?谢谢!!我一进入电脑就会测试,顺便说一句,我可以把它扩展到其他页面,对吗?我的意思是我可以添加“SaveCVInfo”4、5、6等等。。。使用“Session[“columnaId”]=columnaId.ToString();”,最后一个(9)使用您给我的按钮的“SaveCVInfo3”示例调用,对吗?唯一不同的是它将被称为“SaveCVInfo9”。是的。您必须在Button的事件方法中获取会话值并传递给类方法。它会抛出以下两个错误:“错误1与'int.TryParse(string,out int)最匹配的重载方法”'有一些无效参数C:\Users\Kristian\Documents\zulcon\Group zulcon\Group zulcon\Envia2.aspx.cs 29 38 Group zulcon错误2参数1:无法从'method Group'转换为'string'。C:\Users\Kristian\Documents\zulcon\Group zulcon\Group zulcon\Envia2.aspx.cs 29 51 Group zulcon[“columnaId”]!=null&&int.TryParse(Session[“columnaId”].ToString,out columnaId)”我已经编辑了我的答案。1.在查找更改
db.Usuario\u Web
db.Usuario\u Web
。如果仍然有错误,请使用
Where
尝试其他代码。