我不知道为什么每次我执行我的记录更新时,我更新的查询不会将ID从0递增到1并且总是需要0 ..我不知道如何递增我的id到1,到目前为止..请解释..:/ ..我的代码是:
private void btnUpdate_Click(object sender, EventArgs e)
{
int CustomerID =0;
SqlConnection cn = new SqlConnection(@"Data Source=COMPAQ-PC-PC\SQLEXPRESS;
Initial Catalog=Gym;Integrated Security=True");
SqlCommand cmd = new SqlCommand("Update Customer set Customer_Name = '" + tbName.Text + "',Cell_Number = '" + tbContactNumber.Text + "',Customer_Address = '" + tbAddress.Text + "' where CustomerID = " + CustomerID, cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
BindGridView();
}
private void BindGridView()
{
SqlConnection cn = new SqlConnection(@"Data Source=COMPAQ-PC-PC\SQLEXPRESS;Initial Catalog=Gym;Integrated Security=True");
SqlCommand cmd = new SqlCommand("Select * from Customer", cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
dgView_CustomerInfo.DataSource = dt.DefaultView;
}
答案 0 :(得分:2)
您需要改为使用Command.ExecuteNonQuery()
。
答案 1 :(得分:0)
您正在使用“更新客户”sql子句。 这意味着您将更新现有记录,而不是插入新记录。
ID仅针对NEW记录递增,但不会针对现有记录递增。 另外,请确保正确配置了ID列。 它应该具有IDENTITY(1,1)子句,如下例所示:
CREATE TABLE [dbo].[td_Component](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Url] [nvarchar](250) NOT NULL,
[Caption] [nvarchar](50) NOT NULL,
[Description] [varchar](4000) NULL,
答案 2 :(得分:0)
你真的需要阅读一本关于.net编程的书。你的代码充满了毛刺......
让你入门......
// put the connection string into the app.config
using (SqlConnection cn = new SqlConnection(@"Data Source=COMPAQ-PC-PC\SQLEXPRESS; Initial Catalog=Gym;Integrated Security=True"))
{
int result = new SqlCommand("Update Customer set Customer_Name = '" + tbName.Text + "',Cell_Number = '" + tbContactNumber.Text + "',Customer_Address = '" + tbAddress.Text + "' where CustomerID = " + CustomerID, cn).ExecuteNonQuery();
// eval result to see wether there was realy an updated record...
}
在SqlConnection
上使用using()
声明。这样就可以处理对象的处理。事实上,它可以用在所有可以丢弃的物体上。
尝试使用app.config / web.config
作为连接字符串。
转义进入sql server的所有用户输入以防止sql-injection。 http://de.wikipedia.org/wiki/SQL-Injection