在c#中添加数据到数据库的数据行
本文关键字:数据 数据库 添加 | 更新日期: 2023-09-27 17:53:43
我面临一个小问题,在我的代码添加数据到sql数据库附带我的程序在ASP.net/C#。这里的代码:
string ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["sqlconnection"].ConnectionString;
SqlConnection cnn = new SqlConnection(ConnectionString);
cnn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select Id from TableName";
cmd.Connection = cnn;
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds, " TableName ");
SqlCommandBuilder cb = new SqlCommandBuilder(da);
DataRow drow = ds.Tables["TableName"].NewRow();
drow["Id"] = TextBox1.Text;
ds.Tables["TableName "].Rows.Add(drow);
da.Update(ds, " TableName ");
string script = @"<script language=""javascript"">
alert('Information have been Saved Successfully.......!!!!!.');
</script>;";
Page.ClientScript.RegisterStartupScript(this.GetType(), "myJScript1", script);
即使我在文本框中输入任何整数值,它也会显示一个错误消息,即对象未设置为代码上的实例:
DataRow drow = ds.Tables["TableName"].NewRow();
请指导。谢谢。
这似乎是一种非常糟糕的插入数据的方式。你看过实体框架或Linq2Sql吗?或者,您可以使用标准的SqlCommand并自己设置CommandText。
这些都可以提供一个更干净的解决方案。
例如:With ADO。. NET(连接SQLite):
var conn = new SQLiteConnection(string.Format(Constants.SQLiteConnectionString, "db.db3"));
conn.Open();
using (SQLiteTransaction trans = conn.BeginTransaction()) {
using (var cmd = conn.CreateCommand()) {
cmd.CommandText = "INSERT INTO TableName (Id) VALUES (@Id)";
cmd.Parameters.AddWithValue("@Id", someTextVariable);
cmd.ExecuteNonQuery();
}
}