|
|
|
ช่วยดูหน่อยครับ ปุ่มแก้ไขประเภทข้อมูลไม่ต้องกัน (มือใหม่ครับผม) |
|
|
|
|
|
|
|
เวลากดแก้ไข มันฟ้องว่า data type mismatch in criteria expression อะไรไม่ตรงกันเนียแหละครับ ผมหาไม่เจอครับผม
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace ProjectRisk
{
public partial class frmUpdate : Form
{
public frmUpdate()
{
InitializeComponent();
}
OleDbConnection con1;
OleDbCommand cmd;
OleDbDataAdapter adpt;
DataSet s1 = new DataSet();
string strCmd1;
private void riskBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.riskBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.rISK_DBDataSet);
}
private void Form5_Load(object sender, EventArgs e)
{
this.riskTableAdapter.Fill(this.rISK_DBDataSet.risk);
// TODO: This line of code loads data into the 'rISK_DBDataSet.risk' table. You can move, or remove it, as needed.
con1 = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Project Final\ProjectRisk\ProjectRisk\RISK_DB.accdb");
con1.Open();
}
private void button1_Click(object sender, EventArgs e)
{
strCmd1 = "select * from risk where ID = '" + iDTextBox.Text + "'";
cmd = new OleDbCommand(strCmd1, con1);
adpt = new OleDbDataAdapter(cmd);
adpt.Fill(s1, "a1");
if (s1.Tables["a1"].Rows.Count != 0)
{
dATETIME_REDateTimePicker.Text = s1.Tables["a1"].Rows[0][1].ToString();
dATETIME_ACDateTimePicker.Text = s1.Tables["a1"].Rows[0][2].ToString();
rISK_DEFComboBox.Text = s1.Tables["a1"].Rows[0][3].ToString();
sURNAMETextBox.Text = s1.Tables["a1"].Rows[0][4].ToString();
lASTNAMETextBox.Text = s1.Tables["a1"].Rows[0][5].ToString();
hNTextBox.Text = s1.Tables["a1"].Rows[0][6].ToString();
lOCATIONTextBox.Text = s1.Tables["a1"].Rows[0][7].ToString();
nAME_REPORTTextBox.Text = s1.Tables["a1"].Rows[0][8].ToString();
rISK_TYPEComboBox.Text = s1.Tables["a1"].Rows[0][9].ToString();
rISK_DETAILCheckedListBox.Text = s1.Tables["a1"].Rows[0][10].ToString();
oRTHERTextBox.Text = s1.Tables["a1"].Rows[0][11].ToString();
}
s1.Tables["a1"].Clear();
btnEdit.Visible = true;
}
private void button3_Click(object sender, EventArgs e)
{
strCmd1 = "update risk set DATETIME_RE='" + dATETIME_REDateTimePicker.Text + "',DATETIME_AC='" + dATETIME_ACDateTimePicker.Text + "',RISK_DEF='" + rISK_DEFComboBox.Text + "',SURNAME='" + sURNAMETextBox.Text + "', LASTNAME='" + lASTNAMETextBox.Text + "', HN='" + hNTextBox.Text + "',LOCATION='" + lOCATIONTextBox.Text + "',NAME_REPORT='" + nAME_REPORTTextBox.Text + "',RISK_TYPE='" + rISK_TYPEComboBox.Text + "',RISK_DETAIL='" + rISK_DETAILCheckedListBox.Text + "',ORTHER='" + oRTHERTextBox.Text + "' Where ID = '" + iDTextBox.Text + "'";
cmd = new OleDbCommand(strCmd1, con1);
cmd.ExecuteNonQuery();
MessageBox.Show("ได้ทำการแก้ไขข้อมูลอุบัติการ " + iDTextBox.Text + "เรียบร้อยแล้ว", "แก้ไขข้อมูล", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
Tag : .NET, Ms Access, Win (Windows App), C#, Windows
|
ประวัติการแก้ไข 2014-01-24 10:47:06
|
|
|
|
|
Date :
2014-01-24 10:45:55 |
By :
coNvinceD |
View :
724 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าใช้ riskTableAdapter ผมแนะนำให้ตอน Design ให้เขียนคิวรี่ไว้ที่ Dataset>riskTableAdapter ไว้ที่เดียวเลยครับ
ไม่ว่าจะ Fill โดยกรองจาก ID หรือจะ Update จาก ID จะทำได้ที่เดียวและสะดวกกว่าครับ
|
|
|
|
|
Date :
2014-01-24 11:43:51 |
By :
01000010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนพี่อธิบายหน่อยได้ไหมครับ ผมมือใหม่อ่ะครับ
|
|
|
|
|
Date :
2014-01-24 11:59:28 |
By :
coNvinceD |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|