※ 引述《dichia (ptt處處有溫情)》之銘言:
: 試看看
: dim dbcmd as string
: dbcmd = "insert into user_info(name, year, stdID)
: values ('" & TextBox1.Text & "','" & TextBox2.Text & "',
: '" & TextBox3.Text &"')"
: dbconn.open()
: Dim dbcmd As New SqlDbCommand(dbcmd, dbconn)
: dim i as integer = dbcmd.ExecuteNonQuery()
: If i = 1 Then
: MessageBox.Show("資料新增成功!")
: Else
: MessageBox.Show("資料新增失敗!")
: End If
: dbconn.Close()
這是我用C#的寫法(昨天寫的)
DataTable dt = new DataTable();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
OdbcConnection mySqlconn = new OdbcConnection(
"Driver={MySQL ODBC 5.1 Driver};"+
"Server=localhost;Database=test;"+
"User=root;Password=0000;Option=3;");
OdbcCommand mySqlCom = new OdbcCommand(
"SELECT * FROM test2");
mySqlCom.Connection= mySqlconn;
OdbcDataAdapter mySqlAdap = new OdbcDataAdapter(mySqlCom);
DataSet mySqlDS = new DataSet();
mySqlAdap.Fill(mySqlDS);
dt = mySqlDS.Tables[0];
dataGridView1.DataSource = dt;
}
private void label1_Click(object sender, EventArgs e)
{
OdbcConnection mySqlconn = new OdbcConnection(
"Driver={MySQL ODBC 5.1 Driver};" +
"Server=localhost;Database=test;" +
"User=root;Password=0000;Option=3;");
OdbcCommand mySqlInsertCom = new OdbcCommand();
mySqlInsertCom.Connection = mySqlconn;
StringBuilder sb = new StringBuilder();
sb.Append("INSERT INTO test2(fname,Num) values (?,?)");
mySqlInsertCom.CommandText = sb.ToString();
OdbcParameterCollection parm = mySqlInsertCom.Parameters;
parm.Add("fname", OdbcType.VarChar);
parm.Add("Num", OdbcType.Int);
parm[0].Value = "yyy";
parm[1].Value = 1044;
mySqlconn.Open();
mySqlInsertCom.ExecuteNonQuery();
mySqlconn.Close();
Form1_Load(sender, e);
}
因為只是要測試能不能運作
所以元件都是亂拉的,看到我用Label1來啟動事件也不用想太多XD
我主要是在試著使用Parameter
如果用Parameter的話
可以不用一再重複的去改SQL字句
只要在需要時更改Parameter得值就可以再寫入一筆資料了
很容易得就可以製成迴圈
不過MySQL這個不具名參數的方式讓我搞好久才知道怎麼用
似乎只要SQL語句裡面的問號位置有對到Parameter
(就是第一個問號對第一個Parameter)
Parameter要取啥名字都可以的樣子
Google搜尋都沒找到方法(關鍵字不對)
才發現版上就有講到這點了
這篇也順便請我前幾篇文章回應的人參考一下吧XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 192.192.154.54