シークエンスの作り方
解決したいこと
C#上でテーブルのinsert時、serial型(連番)を持たせたい
例)
登録ボタンのイベントを押した際、データグリッドビューにはuser_id以外6つのデータが保存されるかつSQLテーブルには6つ+連番のuser_idもinsertで登録したい。
シークエンスを組むようですがいまいち分かりません。
発生している問題・エラー
Npgsql.PostgresException: '42804: 列"user_id"は型integerですが、式は型textでした'
該当するソースコード
private void addButton_Click(object sender, EventArgs e)
{
// フォームの入力チェック
if (!isFormCheck())
{
MessageBox.Show("氏名を入力してください!!");
return;
}
//denwaDataGrid.RowHeadersVisible = false;
//string a = this.myouji.Text + this.namae.Text;
string b = "";
if (radioButton1.Checked == true)
{
b = this.radioButton1.Text;
}
else if (radioButton2.Checked == true)
{
b = this.radioButton2.Text;
}
string c = "";
if (this.year.Text != "" && this.month.Text != "" && this.day.Text != "")
{
c = this.year.Text + "年" + this.month.Text + "月" + this.day.Text + "日";
}
string d = "";
if (this.phone1.Text != "" && this.phone2.Text != "" && this.phone3.Text != "")
{
d = this.phone1.Text + "-" + this.phone2.Text + "-" + this.phone3.Text;
}
string x = "";
if (this.postalCode1.Text == "" || this.postalCode2.Text == "")
{
x = this.areaBox.Text + this.city.Text + this.town.Text;
}
else if (this.postalCode1.Text != "" && this.postalCode2.Text != "")
{
x = this.postalCode1.Text + "-" + this.postalCode2.Text + this.areaBox.Text + this.city.Text + this.town.Text;
}
string y = this.myouji.Text + this.namae.Text;
//DataTebleにデータを追加する
denwaDataSet.denwaDataTable.AdddenwaDataTableRow(
y,
b,
c,
d,
this.mail.Text,
x
);
//https://okwave.jp/qa/q5746298.html 参考文献C#からinsert実行
/*var connString = "Host=localhost;Port=5432;Username=postgres;Password=uw72qdet;Database=denwachou";
var cmd = new NpgsqlCommand("insert into information values (this.myouji.Text + this.namae.Text, b, c, d, this.mail.Text, x)", conn);
*/
NpgsqlConnection conn = new NpgsqlConnection
("Host=localhost;Port=5432;Username=postgres;Password=uw72qdet;Database=denwachou");
NpgsqlCommand command = new NpgsqlCommand("insert into information values (:y, :b, :c, :d, :this.mail.Text, :x)", conn); ←第一引数をどうするか?
command.Parameters.Add(new NpgsqlParameter("y", y));
command.Parameters.Add(new NpgsqlParameter("b", b));
command.Parameters.Add(new NpgsqlParameter("c", c));
command.Parameters.Add(new NpgsqlParameter("d", d));
command.Parameters.Add(new NpgsqlParameter("this.mail.Text", this.mail.Text));
command.Parameters.Add(new NpgsqlParameter("x", x));
conn.Open();
command.ExecuteNonQuery();
}
自分で試したこと
0