示例代码:SqlCommand myInsert = new SqlCommand();
myInsert.CommandText = "INSERT INTO 订单明细(产品ID,产品名称, 单价, 订单ID, 数量, 促销价, 单位, 金额) VALUES (@产品ID,@产品名称, @单价, " +
"@订单ID, @数量, @促销价, @单位, @金额)";
myInsert.Connection = this.sqlConnectionQQS;
myInsert.Parameters.Add(new System.Data.SqlClient.SqlParameter("@产品ID", System.Data.SqlDbType.NVarChar, 10, "产品ID"));
myInsert.Parameters.Add(new System.Data.SqlClient.SqlParameter("@产品名称", System.Data.SqlDbType.NVarChar, 50, "产品名称"));
myInsert.Parameters.Add(new System.Data.SqlClient.SqlParameter("@单价", System.Data.SqlDbType.Money, 8, "单价"));
myInsert.Parameters.Add(new System.Data.SqlClient.SqlParameter("@订单ID", System.Data.SqlDbType.Money, 8, "订单ID"));
myInsert.Parameters.Add(new System.Data.SqlClient.SqlParameter("@数量", System.Data.SqlDbType.SmallInt, 2, "数量"));
myInsert.Parameters.Add(new System.Data.SqlClient.SqlParameter("@促销价", System.Data.SqlDbType.Money, 8, "促销价"));
myInsert.Parameters.Add(new System.Data.SqlClient.SqlParameter("@单位", System.Data.SqlDbType.NVarChar, 50, "单位"));
myInsert.Parameters.Add(new System.Data.SqlClient.SqlParameter("@金额", System.Data.SqlDbType.Money, 8, "金额")); myInsert.Parameters["@产品ID"].Value = xpTextBox产品编号.Text;
myInsert.Parameters["@产品名称"].Value = label产品名称.Text;
myInsert.Parameters["@单价"].Value = ClassComm.ConvertStringFloat(xpTextBox单价.Text);
myInsert.Parameters["@订单ID"].Value = ClassComm.ConvertStringFloat(xpTextBox订单编号.Text);
myInsert.Parameters["@数量"].Value = ClassComm.ConvertStringFloat(xpTextBox数量.Text);
myInsert.Parameters["@促销价"].Value = ClassComm.ConvertStringFloat(label促销价.Text);
myInsert.Parameters["@单位"].Value = label单位显示.Text;
myInsert.Parameters["@金额"].Value = ClassComm.ConvertStringFloat(label金额.Text); try
{
sqlConnectionQQS.Open();
myInsert.ExecuteNonQuery();

}
catch 
{
MessageBox.Show("插入数据库失败!","错误", MessageBoxButtons.OK,MessageBoxIcon.Error); 

finally
{
sqlConnectionQQS.Close();
}

解决方案 »

  1.   

    有可能慢在这里:sqlConnectionQQS.Open();
    可以考虑用singleton
      

  2.   

    确实。这个sqlConnectionQQS.Open();
    改成
    if(sqlConnectionQQS.State!=ConnectionState.Open)
    {
        sqlConnectionQQS.Open();
    }
    不知道会不会好点。
      

  3.   

    To zhlzl :用SqlDataAdapter的Update方法也用过,但是也差不多.To  lyvvvv,cancerser,hanbingture: sqlConnectionQQS.Close();已经执行完了,但是数据库存还是没有更新数据.To ty34565: 我会用存储过程试试.
      

  4.   

    会不会数据存在buffer中,有没有什么强制刷新的办法? 对ADO.NET的机制还不是很了解.
      

  5.   

    我用的是 sqlcommand,并没有用到DataSet,做了插入之后,查询显示已经插入数据.但是把程序关了,再打开之后,经查询却发现记录没有插入.Why???