部分代碼:
comm.Parameters.Add(new SqlParameter("@seller_id",SqlDbType.UniqueIdentifier));
comm.Parameters["@seller_id"].Value=Ddl_seller_add.SelectedValue;
//Ddl_seller_add是個DropDownList, value內是從數據庫讀入的guid
//調試時能看到Ddl_seller_add.SelectedValue值為"4360f4ba-5bde-4886-a3bc-8fec4479b05e"

解决方案 »

  1.   

    comm.Parameters.Add(new SqlParameter("@seller_id",SqlDbType.UniqueIdentifier));
    System.Guid u = new System.Guid(Ddl_seller_add.SelectedValue);
    comm.Parameters["@seller_id"].Value = u;
      

  2.   

    用樓上的方法就變成這樣了
    Line 1: Incorrect syntax near 'p_backend_insert_customer'. 
    描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。 例外詳細資訊: System.Data.SqlClient.SqlException: Line 1: Incorrect syntax near 'p_backend_insert_customer'.
    放出多一些代碼,是不是別的有問題?
    private void Button1_Click(object sender, System.EventArgs e)
    {
    SqlCommand comm=new SqlCommand("p_backend_insert_customer",conn);
    comm.Parameters.Add(new SqlParameter("@ctm_name",SqlDbType.NVarChar,30));
    comm.Parameters.Add(new SqlParameter("@email",SqlDbType.VarChar,50));
    comm.Parameters.Add(new SqlParameter("@pw",SqlDbType.VarChar,16));
    comm.Parameters.Add(new SqlParameter("@seller_id",SqlDbType.UniqueIdentifier));
    comm.Parameters.Add(new SqlParameter("@phone",SqlDbType.VarChar,25));
    comm.Parameters.Add(new SqlParameter("@company",SqlDbType.NVarChar,30));
    comm.Parameters.Add(new SqlParameter("@re",SqlDbType.NVarChar,200));
    comm.Parameters.Add(new SqlParameter("@creator",SqlDbType.NVarChar,30));
    comm.Parameters["@ctm_name"].Value=Tbx_name.Text;
    comm.Parameters["@email"].Value=Tbx_email.Text;
    comm.Parameters["@pw"].Value=Tbx_pw.Text;
    comm.Parameters["@phone"].Value=Tbx_phone.Text;
    comm.Parameters["@company"].Value=Tbx_company.Text;

    comm.Parameters["@seller_id"].Value=Ddl_seller_add.SelectedValue;
    comm.Parameters["@creator"].Value=Session["UserName"];
    comm.Parameters["@re"].Value=Tbx_re1.Text;
    try
    {
    comm.Connection.Open();
    comm.ExecuteNonQuery();
    comm.Connection.Close();
    BindGridToSource();
    }
    catch(Exception Exp)
    {
    msg.Text=Exp.Message;
    }
      

  3.   

    用到的存儲過程
    CREATE procedure p_backend_insert_customer@ctm_name nvarchar(30),
    @email varchar(50),
    @pw varchar(16),
    @seller_id uniqueidentifier,
    @phone varchar(25)=null,
    @company nvarchar(30),
    @re nvarchar(200)=null,
    @creator nvarchar(30)
    as
    insert front_customer
    (name,email,pw,seller_id,phone,company,create_name,create_time,re)
    values
    (@ctm_name,@email,@pw,@seller_id,@phone,@company,@creator,getdate(),@re)
      

  4.   

    用这个试一下:
    comm.Parameters["@seller_id"].Value=Ddl_seller_add.SelectedItem.Text;
      

  5.   

    建立数据库,存储过程
    create table test(id uniqueidentifier,name nvarchar(20))
    go
    create proc InsertTest @Id uniqueidentifier,@name nvarchar(20)
    as
    insert test(id,name) values(@Id,@Name)
    go
      

  6.   

    用如下代码insert,运行正常
    try
    {
    string connectionString ="data source=192.168.0.20;initial catalog=shitang;User ID=sa;password=mzh.123";
    // string connectionString = "workstation id=\"OEM-JUJUMAO\";packet size=4096;user id=sa;data source=\"192.168.0.2" +
    // "0\";persist security info=False;initial catalog=shitang,pwd=mzh.123";
    SqlConnection conn = new SqlConnection( connectionString );
    conn.Open();
    SqlCommand command = new SqlCommand("InsertTest",conn );
    command.CommandType = CommandType.StoredProcedure ;
    command.Parameters.Add(new SqlParameter("@Id",SqlDbType.UniqueIdentifier));
    command.Parameters.Add( new SqlParameter( "@Name",SqlDbType.NVarChar,20 ));
    command.Parameters["@Id"].Value  = new Guid( "4360f4ba-5bde-4886-a3bc-8fec4479b05e" ) ;
    command.Parameters["@Name"].Value  = "test one";

    int row = command.ExecuteNonQuery();
    }
    catch(Exception err)
    {
    string errMsg = err.Message ;
    }
      

  7.   

    所以我认为肯定是你的程序的其他地方出现问题了,
    command.Parameters["@Id"].Value  = new Guid( "4360f4ba-5bde-4886-a3bc-8fec4479b05e" ) 
    这样子的赋值是对的
      

  8.   

    comm.Parameters["@seller_id"].Value=Ddl_seller_add.SelectedValue;隐式的转换不支持, comm.Parameters["@seller_id"].Value= (Guid)Ddl_seller_add.SelectedValue.ToString();
      

  9.   

    XXX.Parameter p =new XXX.Parameters(.....);
    p.value=new Guid(XXXX.ToString());
    comm.Parameters.Add(p);
    意外之极吧!
      

  10.   

    汗~這幾天寫的有點暈了,低級錯誤啊,終於發現是少了這行:
    comm.CommandType=CommandType.StoredProcedure;
    多謝大家的支持
    結貼啦