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();