我正在尝试了解如何将数据插入到我的数据库中,因此我查看了很多教程,我无法理解如何操作。一个教程让我得到了这个:
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页面中设置。
答案 0 :(得分:5)
你应该尝试这样的事情:
SqlCònnection
和SqlCommand
放入using(..) { ... }
块,以确保妥善处置这将是使用的代码:
-- 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
对象的构造函数中的连接字符串当然需要根据您的需要进行调整 - 再次,我只是猜测它可能是什么样的 - 根据需要进行调整! / p>
答案 1 :(得分:0)
您尚未连接到数据库,也没有执行该命令。
以下是MSDN的一个示例: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection%28v=vs.110%29.aspx
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
}
您应该提供取决于您的数据库类型和位置的连接字符串。
答案 2 :(得分:0)
首先需要定义一个sqlconnection,否则.net框架将如何知道要使用的数据库,它所在的位置等。
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();
我不认为此处需要数据适配器来插入数据。数据适配器通常在执行" select"查询。数据适配器通常填充数据集。
有关创建连接字符串的更多信息,请访问以下链接: -
答案 3 :(得分:-1)
cmd = new SqlCommand("INSERT INTO UserInfo (ID, Pass, Email, BDYear, BDMonth, BDDay, FullName) VALUES ("+ID+", "+Pass+", "+Email+","+BDYear+", "+BDMonth+", "+BDDay+", "+FullName+")");
这可能有效,但我建议使用带参数的SqlCommand。
这篇文章可以帮到你。
http://msdn.microsoft.com/tr-tr/library/system.data.sqlclient.sqlcommand.parameters(v=vs.110).aspx http://www.csharp-station.com/Tutorial/AdoDotNet/lesson06