这是我插入表格的代码。它没有任何错误,但它没有插入表中。我也尝试使用stored_procedure
但它也没有插入。我找不到我做错了什么。
private void btnSave_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = Properties.Settings.Default.bm_DatabaseConnectionString;
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
//cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "INSERT INTO [tbl_Buildings] (buildingName,buildingImage,buildingAddress,floorNo,apartsNo, buildingDesc) VALUES (@builName,@builImage,@builAddr,@floorNo,@apartsNo,@builDesc)";//"prc_AddNewBuilding";
cmd.Parameters.Add("@builName", txtBuildingName.Text);
cmd.Parameters.Add("@builAddr", txtAddress.Text);
cmd.Parameters.Add("@builImage", "Undefined");
cmd.Parameters.Add("@floorNo", (int)numFloorNo.Value);
cmd.Parameters.Add("@apartsNo", (int)numApartsNo.Value);
cmd.Parameters.Add("@builDesc", txtBuilDesc.Text);
try
{
con.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("New building has been added successfully");
this.Close();
}
catch (SqlException sqlex)
{
MessageBox.Show(sqlex.Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
}
我正在使用VS2012。我能做错什么?
答案 0 :(得分:0)
修改强>
我的原始答案假定SQL Server是数据库。事实证明,OP正在使用MS Access。似乎,基于其他证据,.mdb文件的文件路径是罪魁祸首,而不是C#或SQL。
我原来的回答:
使用连接字符串...
Server=myhost;Database=testdatatbase;Trusted_Connection=True;
您上面提供的代码有效。我去了SQL企业管理器,用以下属性创建了一个名为dbo.tbl_Buildings的表...
buildingName = nvarchar(50)
buildingImage = nvarchar(50)
buildingAddress = nvarchar(50)
floorNo = int
apartsNo = int
buildingDesc = nvarchar(50)
然后我传入了虚拟值,然后运行以下查询......
select * from testdatatbase.dbo.tbl_Buildings
它显示了记录......
- 似乎对我有用......
(也许检查一下您的数据类型 - 确保您的表类型与代码中的类型匹配)
答案 1 :(得分:0)
尝试使用:
Database.Command.Parameters.AddWithValue("@variableName", variable)
我唯一可以想象为什么你的值不会被插入到你的数据库中的是一个SQL异常。也许你错过了一些报价?
可以使用完整的“添加”声明,如下所示:
Database.Command.Parameters.Add(item, System.Data.SqlDbType.VarChar).Direction = ParameterDirection.Input
在这种情况下,项目是包含要存储的数据的变量