0

C# でストアド プロシージャを使用するのは初めてです。しかし、値をデータベースに完全に挿入できませんか?

create procedure insertPro
     (@name as varchar,
      @lname as varchar,
      @phone as varchar)
as
    insert into std_info 
    values (@name, @lname, @phone)
go

そして、ここに私のC#コードがあります

SqlConnection con = new SqlConnection("Data Source=xxxxxxxx;Integrated Security=SSPI;Initial Catalog=xxxxx");
        SqlCommand cmd = new SqlCommand("insertPro",con);
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = textBox1.Text;
        cmd.Parameters.Add("@lname", SqlDbType.VarChar).Value = textBox2.Text;
        cmd.Parameters.Add("@phone", SqlDbType.VarChar).Value = textBox3.Text;
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();

これは値をデータベースに挿入しますが、完全ではありません。たとえば、名を abc として挿入すると、姓と電話番号にのみ挿入されますか?

4

3 に答える 3

1
@name as varchar

したがってvarchar、長さを指定せずに単純に使用します。1文字だけかかります。そのため、テーブルに 1 文字しか表示されていません。列の長さと同じ長さで指定するだけです。

  @name as varchar(100)
于 2013-06-04T07:37:01.817 に答える