Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.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# 将数据插入数据库,can';我想不出来_C#_Sql_Sql Server_Database - Fatal编程技术网

C# 将数据插入数据库,can';我想不出来

C# 将数据插入数据库,can';我想不出来,c#,sql,sql-server,database,C#,Sql,Sql Server,Database,我试图理解如何将数据插入到数据库中,所以我看了很多教程,但我不知道怎么做。一个教程让我了解了这一点: public partial class Register : System.Web.UI.Page{ public string ID, Pass, Email, BDYear, BDMonth, BDDay, FullName; SqlCommand cmd; SqlConnection con; SqlDataAdapter da; protected void Page_Load(ob

我试图理解如何将数据插入到数据库中,所以我看了很多教程,但我不知道怎么做。一个教程让我了解了这一点:

public partial class Register : System.Web.UI.Page{

public string ID, Pass, Email, BDYear, BDMonth, BDDay, FullName;
SqlCommand cmd;
SqlConnection con;
SqlDataAdapter da;
protected void Page_Load(object sender, EventArgs e)
{


    if (IsPostBack){

        ID = Request.Form["ID"];
        Pass = Request.Form["PW"];
        Email = Request.Form["EMAIL"];
        BDYear = Request.Form["BDYear"];
        BDMonth = Request.Form["BDMonth"];
        BDDay = Request.Form["BDDay"];
        FullName = Request.Form["FullName"];

        cmd = new SqlCommand("INSERT INTO UserInfo (ID, Pass, Email, BDYear, BDMonth, BDDay, FullName) VALUES (ID, Pass, Email,BDYear, BDMonth, BDDay, FullName)");

    }

}
}
但它实际上不起作用,或者显示出它起作用的迹象,我想我需要有人告诉我在我的情况下该怎么做。 我不知道这里写的是否正确,但请给我一些指导。 所有变量都是根据这些名称在aspx页面中设置的

        cmd = new SqlCommand("INSERT INTO UserInfo (ID, Pass, Email, BDYear, BDMonth, BDDay, FullName) VALUES ("+ID+", "+Pass+", "+Email+","+BDYear+", "+BDMonth+", "+BDDay+", "+FullName+")");
这可能有效,但我建议使用带有参数的SqlCommand

这篇文章可以帮助你


您没有连接到数据库,也没有执行该命令

以下是MSDN中的一个示例:


您应该提供连接字符串,这取决于您的数据库类型和位置。

您应该尝试以下方法:

  • 将查询语句设置为字符串
  • 使用(..{…}块将
    SqlCòconnection
    SqlCommand
    放入
    中,以确保正确处理
  • 使用显式类型定义参数,设置其值
  • 打开连接,执行查询,关闭连接
这将是要使用的代码:

   -- your INSERT statement:
   string query = "INSERT INTO UserInfo(ID, Pass, Email, BDYear, BDMonth, BDDay, FullName) " + 
                  "VALUES (@ID, @Pass, @Email, @BDYear, @BDMonth, @BDDay, @FullName);";

   -- define your connection to the database
   using (SqlConnection conn = new SqlConnection("server=.;database=test;Integrated Securiy=SSPI;"))
   -- define your SqlCommand
   using (SqlCommand cmd = new SqlCommand(query, conn))
   {
       -- define the parameters and set their values
       cmd.Parameters.Add("@ID", SqlDbType.Int).Value = ID;
       cmd.Parameters.Add("@Pass", SqlDbType.VarChar, 50).Value = Pass;
       cmd.Parameters.Add("@Email", SqlDbType.VarChar, 255).Value = Email;
       cmd.Parameters.Add("@BDYear", SqlDbType.Int).Value = BDYear;
       cmd.Parameters.Add("@BDMonth", SqlDbType.Int).Value = BDMonth;
       cmd.Parameters.Add("@BDDay", SqlDbType.Int).Value = BDDay;
       cmd.Parameters.Add("@Fullname", SqlDbType.VarChar, 200).Value = Fullname;

       -- open connection, execute query, close connection
       conn.Open();

       int rowsAffected = cmd.ExecuteNonQuery();

       conn.Close();
   }

当然,对于参数,我只能猜测它们是什么数据类型——您可能需要调整它!另外:
SqlConnection
对象的构造函数中的连接字符串当然需要根据您的需要进行调整-同样,我只是猜测它可能是什么样子-根据需要进行调整

您需要首先定义一个sqlconnection,否则.net framework将如何知道要使用哪个数据库、它的位置等

sqlconnection con;
sqlcommand cmd;

con = new sqlconection("your connection string goes here");
cmd = new sql command("your query", con); //we are telling cmd that you need to
// fire the query using con which is a connection object which ultimately
// contains database connection information
con.open();
cmd.ExecuteNonQuery();
con.close();
我认为这里不需要数据适配器来插入数据。数据适配器通常在执行“选择”查询时使用。数据适配器通常填充数据集

有关创建连接字符串的详细信息,请访问以下链接:-


为什么使用Request.Form?您在哪里声明变量Request?我使用Request.form在我的WebForm上获取输入值。您能告诉我如何找到数据库的连接字符串吗?如果它是
.mdb
,则称为Database.mdb,然后是MS Access,您不能使用
SqlConnection
/
SqlCommand
进行访问-您需要查看
OleDbConnection
OleDbCommand
类-有大量的初学者教程向您展示了如何进行访问-只需做一些研究!谢谢,我还发现我的老师给了我们一个dalaccess.cs页面,上面已经有了所有这些。在dalaccess页面中,它确实使用了OleDB东西,这就是为什么较新的命令不能在my.mdb数据库上工作的原因。我还将其转换为.accdb。所以,谢谢你引起我的注意。不管怎样,你帮了我很多,谢谢。
sqlconnection con;
sqlcommand cmd;

con = new sqlconection("your connection string goes here");
cmd = new sql command("your query", con); //we are telling cmd that you need to
// fire the query using con which is a connection object which ultimately
// contains database connection information
con.open();
cmd.ExecuteNonQuery();
con.close();