Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > คือผมจะบันทึกค่าโดยใช้ Parameter และโยนเข้า Sql ไปโดยผ่าน Class แล้วมัน Error ครับ มันขึ้นว่า Fatal error encountered during command execution.



 

คือผมจะบันทึกค่าโดยใช้ Parameter และโยนเข้า Sql ไปโดยผ่าน Class แล้วมัน Error ครับ มันขึ้นว่า Fatal error encountered during command execution.

 



Topic : 083994



โพสกระทู้ ( 133 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook



ขออนุญาตปิดกระทู้นะครับสำเร็จแล้วครับ ผลตามด้านล่างครับ


คือผมจะบันทึกค่าโดยใช้ Parameter และโยนเข้า Sql ไปโดยผ่าน Class ที่ผมดึงของคนอื่นมาใช้ แล้วมัน Error ครับ มันขึ้นว่า Fatal error encountered during command execution. ในช่วงของ Class ที่ชื่อว่า Database ใน Function ที่ชื่อว่า DataManipulatewithparamiter() มันจะ Return กลับมาที่ Form1 เป็น false และแจ้ง catch ว่า Fatal error encountered during command execution. ตามที่ได้กล่าวไปแล้วในข้างตัน ไม่ทราบผมทำ Parameter ผิดตรงไหนหรือครับ หรือต้องใช้ แบบนี้ครับ
Code (C#)
Database.sqlCom.Parameters.Clear();
Database.sqlCom.Parameters.Add("STRRUN", OleDbType.VarChar).Value = strRunno;

string sqlUpdate = "UPDATE INDEXMASTER SET RUNNO = ?";



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.Configuration;
using MySql.Data.MySqlClient;

namespace testParamiterForMysql
{
    public partial class Form1 : Form
    {
        string strConMysql = ConfigurationManager.ConnectionStrings["mySqlServer"].ToString();

        Database Database = new Database();

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Database.OpenConnection(strConMysql);
            Database.OleDbCommand();
            Database.BeginTransaction();

            MySqlParameter startDat = new MySqlParameter("@startDate", textBox1.Text);

            string sql = "INSERT INTO testtable(field1) VALUES (@startDate)";

            Database.sqlCom.CommandType = CommandType.Text;
            Database.sqlCom.Connection = Database.sqlCon;
            Database.sqlCom.CommandText = sql;

            if (!Database.DataManipulatewithparamiter())
            {
                Database.RollBackTran();
                MessageBox.Show(Database.error);
                return;
            }
            Database.CommitTran();
            Database.CloseConnection();

        }
    }
}


Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using System.Data;
using System.Data.OleDb;

namespace testParamiterForMysql
{
    class Database
    {
        public string error;
        public MySqlCommand sqlCom = null;
        MySqlTransaction Tran = null;
        public MySqlConnection sqlCon = new MySqlConnection();

        public void OpenConnection(string strCon)
        {
            if (sqlCon.State != ConnectionState.Open)
            {
                sqlCon.ConnectionString = strCon;
                sqlCon.Open();
            }
        }

        public void OleDbCommand()
        {
            if (sqlCon.State == ConnectionState.Open)
                sqlCom = new MySqlCommand();
        }

        public void BeginTransaction()
        {
            Tran = sqlCon.BeginTransaction();
        }

        public bool DataManipulatewithparamiter()
        {
            try
            {
                sqlCom.Transaction = Tran;
                sqlCom.ExecuteNonQuery();

                return true;
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return false;
            }
        }

        public bool DataManipulate(string query, MySqlConnection sqlcon)
        {
            try
            {

                sqlCom = new MySqlCommand(query, sqlcon);

                sqlCom.Transaction = Tran;
                sqlCom.ExecuteNonQuery();

                return true;
            }
            catch (Exception ex)
            {
                //tran.Rollback();
                error = ex.Message;
                return false;
            }
        }

        public void CommitTran()
        {
            Tran.Commit();
        }

        public void RollBackTran()
        {
            Tran.Rollback();
        }

        public DataTable GetData(string strcon, string sqlstr)
        {
            return GetData(strcon, sqlstr, null);
        }

        public DataTable GetData(string strcon, string sqlstr, params MySqlParameter[] param)
        {
            MySqlConnection olecon = new MySqlConnection();
            try
            {
                DataTable dt = new DataTable();

                {
                    olecon.ConnectionString = strcon;
                    olecon.Open();
                    MySqlCommand dbCom = new MySqlCommand(sqlstr, olecon);
                    dbCom.Parameters.Clear();

                    if (param != null)
                    {
                        foreach (MySqlParameter p in param)
                        {
                            dbCom.Parameters.Add(p);
                        }
                    }

                    MySqlDataAdapter da = new MySqlDataAdapter(dbCom);

                    da.Fill(dt);

                }
                return dt;
            }
            finally
            {
                olecon.Close();
            }
        }
        public void CloseConnection()
        {
            sqlCon.Close();
        }
    }
}




Tag : .NET, MySQL, Win (Windows App), C#, VS 2010 (.NET 4.x), Windows









ประวัติการแก้ไข
2012-09-14 15:06:30
2012-09-19 08:36:34
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-09-14 15:04:22 By : teerapat_kan View : 4294 Reply : 6
 

 

No. 1



โพสกระทู้ ( 133 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ยังหาคำตอบไม่ได้เลยครับ ช่วยด้วยนะครับ หรือจะให้อธิบายตรงไหนบอกได้นะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-14 22:51:10 By : teerapat_kan
 


 

No. 2



โพสกระทู้ ( 89 )
บทความ ( 0 )



สถานะออฟไลน์


Code (C#)
public void BeginTransaction()

{

//Tran = sqlCon.BeginTransaction();

Tran = sqlCon.BeginTransaction(IsolationLevel.ReadCommitted);

}


ลองดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-17 08:58:26 By : otomokung
 

 

No. 3



โพสกระทู้ ( 133 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ขอบคุณมากนะครับแต่ ยังไม่ได้อะครับ ขึ้นเหมือนเดิมเลยครับ


ประวัติการแก้ไข
2012-09-19 07:45:30
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-19 07:44:39 By : teerapat_kan
 


 

No. 4



โพสกระทู้ ( 133 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

สำเร็จแล้วครับสรุปไปจบที่

Code (C#)
Database.sqlCom.Parameters.Clear();
Database.sqlCom.Parameters.Add("@text", MySqlDbType.VarChar).Value = textBox1.Text;
string sql = "INSERT INTO testtable(field1) VALUES (@text)";

พอดีไปนั่งอ่าน Manual ของ MySql แล้วบอกว่าให้ใช้ แบบนี้เลยลองทำตาม Commit transaction เรียบร้อยครับ






นี่โค้ดเต็มๆครับ
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.Configuration;
using MySql.Data.MySqlClient;

namespace testParamiterForMysql
{
    public partial class Form1 : Form
    {
        string strConMysql = ConfigurationManager.ConnectionStrings["mySqlServer"].ToString();

        Database Database = new Database();

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Database.OpenConnection(strConMysql);
            Database.OleDbCommand();
            Database.BeginTransaction();


            Database.sqlCom.Parameters.Clear();
            Database.sqlCom.Parameters.Add("@text", MySqlDbType.VarChar).Value = textBox1.Text;
            string sql = "INSERT INTO testtable(field1) VALUES (@text)";

            Database.sqlCom.CommandType = CommandType.Text;
            Database.sqlCom.Connection = Database.sqlCon;
            Database.sqlCom.CommandText = sql;

            if (!Database.DataManipulatewithparamiter())
            {
                Database.RollBackTran();
                MessageBox.Show(Database.error);
                return;
            }
            Database.CommitTran();
            Database.CloseConnection();

        }
    }
}


ขอบคุณทุกท่านที่เข้ามาอ่านกระทู้นะครับหวังว่าจะเป็นความรู้กับผู้อื่นไม่มากก็น้อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-19 08:32:00 By : teerapat_kan
 


 

No. 5



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

แจ่มครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-19 08:56:14 By : mr.win
 


 

No. 6



โพสกระทู้ ( 133 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 5 เขียนโดย : mr.win เมื่อวันที่ 2012-09-19 08:56:14
รายละเอียดของการตอบ ::
ขอบคุณครับ Mr.win

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-09-19 08:57:30 By : teerapat_kan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : คือผมจะบันทึกค่าโดยใช้ Parameter และโยนเข้า Sql ไปโดยผ่าน Class แล้วมัน Error ครับ มันขึ้นว่า Fatal error encountered during command execution.
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่