日期:2014-05-17  浏览次数:20374 次

asp.net c# 链接数据库的问题, 新手求援!
我想做一个卖书的网站(自己做着玩 为了练习)在最后结账的时候 我想通过一个按钮 最后把产品号码,数量,价钱什么的写到 数据库的表里 就是一个订单表。(是不是很简单?)

但是提示我错误 大概意思是 null object 我自己猜测是 没找到数据库 没连上 可能是我连数据库的代码有问题,也可能是其它问题。请大家帮我看看,帮一下忙。book是数据库的名字 orderLine 是表名。
 
protected void Wizard1_FinishButtonClick(object sender, System.Web.UI.WebControls.WizardNavigationEventArgs e)
  {
  SqlConnection conn = null;
  SqlTransaction trans = null;
  SqlCommand cmd;

  try
  {
   
  conn = new SqlConnection(ConfigurationManager.ConnectionStrings["book"].ConnectionString);
  conn.Open();

  trans = conn.BeginTransaction();

  cmd = new SqlCommand();
  cmd.Connection = conn;
  cmd.Transaction = trans;

  int OrderID = Convert.ToInt32(cmd.ExecuteScalar());

  cmd.CommandText = "INSERT INTO OrderLines(OrderID, ProductID, Quantity, Price) " +
  "VALUES (@OrderID, @ProductID, @Quantity, @Price)";
  cmd.Parameters.Clear();
  cmd.Parameters.Add("@OrderID", SqlDbType.Int);
  cmd.Parameters.Add("@ProductID", SqlDbType.Int);
  cmd.Parameters.Add("@Quantity", SqlDbType.Int);
  cmd.Parameters.Add("@Price", SqlDbType.Money);

  cmd.Parameters["@OrderID"].Value = OrderID;
  foreach (CartItem item in Profile.Cart.Items)
  {
  cmd.Parameters["@ProductID"].Value = item.ProductID;
  cmd.Parameters["@Quantity"].Value = item.Quantity;
  cmd.Parameters["@Price"].Value = item.Price;

  cmd.ExecuteNonQuery();
  }

  trans.Commit();

  }
  catch (SqlException SqlEx)
  {
  if (trans != null)
  trans.Rollback();



  // Log the exception
  // Tools.log("An error occurred while creating the order", SqlEx)
  throw new Exception("An error occurred while creating the order", SqlEx);
  }
  finally
  {
  if (conn != null)
  conn.Close();
  }

  Profile.Cart.Items.Clear();
  }


------解决方案--------------------
搞清楚你调用的是哪个????????
XML code

<appSettings>
      <add key="book" value="数据库连接字符串"/>
    </appSettings>
    <connectionStrings>
        <add name="book" connectionString="数据库连接字符串"/>
    </connectionStrings>