[英]updating sql server database using c# in asp.net
沒有任何編譯錯誤,但數據庫根本沒有更新。 代碼有什么問題?
protected void Page_Load(object sender, EventArgs e) {
rno.Text = Request.QueryString["rno"];//rno is a textbox
string connectionString = @"Data Source = (localdb)\MSSQLLocalDB; Initial Catalog = db1; Integrated Security = True";
SqlConnection cnn = new SqlConnection(connectionString);
cnn.Open();
String sql = "select fname from table1 where rno = @rno";
SqlCommand command = new SqlCommand(sql, cnn);
command.Parameters.AddWithValue("@rno", rno.Text.Trim());
SqlDataReader reader = command.ExecuteReader();
if (reader.Read()) {
fname.Text = reader["xcountry"].ToString().Trim(); //fname is a textbox
}
reader.Close();
command.Dispose();
cnn.Close();
fName.ReadOnly = true;
}
protected void modify_Click(object sender, EventArgs e) {
fName.ReadOnly = false;
}
protected void savechanges_Click(object sender, EventArgs e) {
string connectionString = @"Data Source = (localdb)\MSSQLLocalDB; Initial Catalog = db1; Integrated Security = True";
SqlConnection cnn = new SqlConnection(connectionString);
cnn.Open();
String sql = "update table1 set fname=@fname where rno = @rno";
SqlCommand command = new SqlCommand(sql, cnn);
command.Parameters.AddWithValue("@fname", sfname);
command.Parameters.AddWithValue("@rno", rno.Text.Trim());
command.ExecuteNonQuery();
command.Dispose();
cnn.Close();
fName.ReadOnly = true;
}
我已經嘗試過你的代碼,它執行得很好,並且更新了數據庫表。
我試過如下:
string connectionString = @"data source=MS-KIRON-01;initial catalog=TestDatabase;integrated security=True;MultipleActiveResultSets=True";
SqlConnection cnn = new SqlConnection(connectionString);
cnn.Open();
String sql = "update TestTable set fname=@fname where rno =rno";
SqlCommand command = new SqlCommand(sql, cnn);
command.Parameters.AddWithValue("@fname", "Test");
command.Parameters.AddWithValue("@rno", "rno");
command.ExecuteNonQuery();
command.Dispose();
cnn.Close();
我嘗試過的另一種方法。
using (SqlConnection connection = new SqlConnection(connectionString ))
{
connection.Open();
var queryText = "UPDATE TestTable SET fname = '" + requestPram.fname + "' WHERE rno ='" + requestPram.rno + "'";
using (SqlCommand cmd = new SqlCommand(queryText, connection))
{
responseResults = await cmd.ExecuteNonQueryAsync();
}
connection.Close();
}
希望它會有所幫助
搜索了一會,發現這段代碼執行的很完美。 唯一的問題是所有內容都在 page_Load() 方法中,因此每次更新數據庫時都會重新加載頁面,從而刪除小窗口以編輯文本框。 合適的解決方案是將此代碼與某個按鈕事件相關聯,而不是與 page_Load() 事件相關聯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.