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 > VB.NET โปรแกรมแจ้งเตือนว่า OleDbException: Multiple-step OLE DB operation generated errors. ค่ะ



 

VB.NET โปรแกรมแจ้งเตือนว่า OleDbException: Multiple-step OLE DB operation generated errors. ค่ะ

 



Topic : 134614



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



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




พอดีตอนนี้เรากำลังทำโปรแกรมด้วย Visual Studio 2019 กับ SQL Server 2008 ค่ะ แต่เจอ error ขึ้นมาว่า
OleDbException: Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
ไปหาอ่านของชาวต่างชาติที่แก้ด้วยการโหลดโปรแกรม QODBC Driver for Quickbook แล้ามาตั้งค่าขนาดฟิลด์ก็ยังไม่ได้ค่ะ ถ่้ามีวิธีแก้ยังไง รบกวนช่วยแนะนำหน่อยนะคะ

ภาพ error oledb



Tag : .NET, MySQL, VS 2017 (.NET 4.x), Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-12-09 09:26:28 By : jirang View : 1097 Reply : 8
 

 

No. 1

Guest


ผมใช้ VS 2019 Community Version 16.4.0
--- ผม migrate .NET Core 2.2 VB/C# ทำงานได้ดีไม่มีปัญหา ---> ขึ้นมา .NET Core 3.1 และทิ้ง VB เอาไว้ข้างหลัง

ปัญหาตามมาเพียบเลย อทิเช่น
--- Web API Method Post ผมไม่สามารถใช้ JObject ได้
Code (C#)
[AllowAnonymous]
[HttpPost]
[Route("SignIn")]
public IActionResult SignIn(JObject user) 
{
    //res = response, var <> dynamic
    //var resMessage = new { Id = 1, errorMessage = "" };
    dynamic resMessage = new { Id = 1, errorMessage = string.Empty };

    //if (string.IsNullOrEmpty((user.Value<string>("username") ?? null)))
    //{
    //    resMessage.errorMessage = "User Name Required";
    //}
    //else if (string.IsNullOrEmpty((user.Value<string>("password") ?? null)))
    //{
    //    //All when you needs.
    //}
    //All when you needs.
    //All when you needs.
    return Ok(resMessage);
}


ไล่มาทั้งวัน ผมเสียเวลาไปทั้งวัน สาเหตุมันเป็นเพราะ .NET Core 3.1 มันไม่ได้ใช้ Json.NET มันใช้ตัวนี้แทน Microsoft.AspNetCore.Mvc.NewtonsoftJson

ผมเลยถึงบางอ้อ บางครั้งมันก็ไม่ได้เป็นที่ตัวเรา หรือตัวเขา แต่มันเป็นเหตุสุดวิสัย...

ปล. ผมอัพ VB --> C# ทั้งหมด ผมพยายามทำอยุ่ ไม่รู้เสร็จวันไหน






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-09 21:01:09 By : หน้าฮี
 


 

No. 2

Guest


Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Diagnostics;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Features;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

//nuget Microsoft.AspNetCore.Mvc.NewtonsoftJson // .NET Core 2.2 -> 3.1 ฝั่งเรียก Web MVC 3.1 -> ฝั่งรับ Web API 3.1 มีปัญหา
//หมายความว่าใช้ JObject ไม่ได้ อทิเช่น WEB API -> Method Post JObject param
//จำเป็นต้องใส่ในฝั่ง Frontend/Backend(MVC Web/ Web API)

namespace sexyERP.WebApp
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews()
                    .AddRazorRuntimeCompilation()
                    .AddNewtonsoftJson() //nuget Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation Fixed .cshtml/other change browser not refresh
                  //.AddApplicationPart(typeof(faceHe_APIServiceSexy.Startup).GetTypeInfo().Assembly); //face He Add before .NET Core 2.2 สำหรับ .NET Core 3.x ไม่จำเป็น
            ;
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            //app.UseHttpsRedirection(); //face He Comment
            app.UseStaticFiles();

            app.UseRouting();

            //app.UseAuthorization(); //face He Comment

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-09 21:10:56 By : หน้าฮี
 

 

No. 3

Guest


เหตุผลที่ผม Migrate .NET Core 2.2 --> .NET Core 3.1 มันมีเหตุผลอยุ่ครับ (สำหรับผม VB/C# มันก็ไม่แตกต่างกัน)
แต่เหตุผลหลักก็คือ เก็บเอาไว้อ้างอิง และ
1. เอาไปวิ่งบน Nginx/Apache/etc.. ได้
2. เอาไปวิ่งบน Mac/Linux/etc.. ได้
3. ข้อนี้สำคัญ ผมจะไม่เขียน Windows Application/Web Application อีกแล้ว

แล้วผมไปไหน?
--- Node.js/Dart(Flutter)/Python +55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-09 21:28:13 By : หน้าฮี
 


 

No. 4

Guest


ขยายความ #1-#2 หรือ Backend/FrontEnd
Code (JavaScript)
<script>
        $("#btnSignIn").on("click", function (e) {
            e.preventDefault();
            doAjax();
        });

         function doAjax() {
            let user = {
                username: "Dang",
                password: "Slowly As Fuck"
            }
            //try {
                $.ajax({
                    type: "POST",
                    url: "/api/Security/SignIn",
                    data: JSON.stringify(user), //Mapping JObject user
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (data) {
                        //console.log(data);
                    },
                    error: function (req, status, error) {
                        //TODO
                        alert(error);
                    }
                });
            //} catch (error) {
            //    console.error(error);
            //}
        }
    </script>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-09 21:34:45 By : หน้าฮี
 


 

No. 5



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



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


ขอบคุณนะคะสำหรับคำตอบ ตอนนี้แก้ไขได้เรียบร้อยแล้วค่ะ มันผิดเพราะว่าพิมพ์โค้ดส่งค่าพารามิเตอร์เกินค่ะ มันเลย error
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-09 21:50:50 By : jirang
 


 

No. 6

Guest


คุณคิดว่า NoSQL/SQL บนโลกใบนี้เอาผมอยู่หรือไม่?

อันนี้ผมใช้ MySQL ยกให้เป็นตัวอย่าง
--- ผมไม่อยากจะเขียน Store Procedure ฝังเอาไว้บน RDBMS แทบจะทุกฯกรณี (ถ้าไม่จำเป็น)

Code (C#)
        [HttpGet]
        [Route("getMDivisionByJDT")]
        public IActionResult getMDivisionByJDT()
        {
            var db = SexyDatabase.GetCurrentDialect();
            var start = (string)HttpContext.Request.Query["start"] ?? "0"; //ตำแหน่งระเบียนปัจจุบัน
            var pageSize = (string)HttpContext.Request.Query["length"] ?? "10"; //จำนวนที่แสดงต่อหน้า
            var searchValue = (string)HttpContext.Request.Query["search[value]"] ?? ""; //คำค้นหา 

            var orderColumnIndex = (string)HttpContext.Request.Query["order[0][column]"] ?? "1"; //จัดเรียงที่ Column ถ้าไม่ระบุ = 1
            var orderColumnName = (string)HttpContext.Request.Query["columns[" + orderColumnIndex + "][name]"] ?? ""; //จัดเรียงชื่อคลัมภ์
            var orderDirection = (string)HttpContext.Request.Query["order[0][dir]"] ?? "asc"; //จัดเรียงแบบ asc/desc

            string query = "";
            var whereClause = ""; 

            if (orderColumnIndex.ToLower() == "id")
            {
                whereClause = "Id >=" + searchValue;
            } else
            {
                whereClause = "LIKE '%" + searchValue + "%'";
            }

            switch (db)
            {
                case SimpleCRUD.Dialect.SQLServer:
                    break;
                case SimpleCRUD.Dialect.PostgreSQL:
                    break;
                case SimpleCRUD.Dialect.SQLite:
                    break;
                case SimpleCRUD.Dialect.MySQL:
                      query = @$"-- START TRANSACTION;
                              SET @recordsTotal := (SELECT count(1) FROM wldb.mdivision); 
                              -- SELECT @recordsTotal := 0;
                              -- SELECT COUNT(*) INTO @recordsTotal FROM wldb.mdivision;
                              CREATE TEMPORARY TABLE IF NOT EXISTS temp_cs
                               AS (
                                   SELECT *
                                   FROM
                                   wldb.mdivision WHERE {orderColumnName} {whereClause} ORDER BY {orderColumnName} {orderDirection});
                               SET @recordsFiltered := (SELECT count(1) FROM temp_cs); 
                               SELECT *, @recordsTotal AS recordsTotal, @recordsFiltered AS recordsFiltered FROM temp_cs LIMIT {pageSize} OFFSET {start};
                               DROP TEMPORARY TABLE IF EXISTS temp_cs;
                               -- COMMIT;
                           ";
                    break;
                case SimpleCRUD.Dialect.Oracle:
                    break;
                case SimpleCRUD.Dialect.DB2:
                    break;
                case SimpleCRUD.Dialect.InfluxDB:
                    break;
                default:
                    break;
            }

            var lstMock = new[] { new { Id = 1, code = "", nameth = "", nameus = "", Remark = "" } }.Take(0).ToList();

            IEnumerable<dynamic> results1 = null;
            IEnumerable<IDictionary<string, dynamic>> results3;

            using (var cn = SexyDatabase.SexyConnection(forceOpen : true))
            {
               results1 = cn.Query<dynamic>(query);
               //results3 = cn.Query(query) as IEnumerable<IDictionary<string, dynamic>>;
               //results2 = cn.GetList<sexy_Database.Models.Settings.MDivision>();
            }

            int recordsTotal = 0;
            int recordsFiltered = 0;
            if (results1.Count() > 0)
            {
                recordsTotal = (int)(long)(results1.ElementAt(0) as IDictionary<string, object>)["recordsTotal"];
                var hum1 = results1.ElementAt(0) as IDictionary<string, object>;
                var hum2 = hum1.Count();
                recordsFiltered = (int)(long)(results1.ElementAt(0) as IDictionary<string, object>)["recordsFiltered"];
            }

            foreach (var row in results1)
            {
                var fields = row as IDictionary<string, object>; //row.Cast<IDictionary<string, object>>()
                lstMock.Add(new
                {
                    Id = (int)fields["Id"], //(int)fields["Id"]
                    code = (string)fields["Code"],
                    nameth = (string)fields["NameTH"],
                    nameus = (string)fields["NameUS"],
                    Remark = (string)fields["Remark"]
                });
            }
            return Ok(new { data = lstMock.ToList(), error = "", recordsTotal = recordsTotal, recordsFiltered = recordsFiltered }); 
        }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-09 21:53:00 By : หน้าฮี
 


 

No. 7

Guest


Quote:
ขอบคุณนะคะสำหรับคำตอบ ตอนนี้แก้ไขได้เรียบร้อยแล้วค่ะ มันผิดเพราะว่าพิมพ์โค้ดส่งค่าพารามิเตอร์เกินค่ะ มันเลย error


มันจบแล้ว พารามิเตอร์ (@/?/etc...) ดีแค่ไหน/เร็วแค่ไหน มันซ่อนปัญหาให้เราอยู่เสมอ

ลองใช้ Dapper/EF (ณ. วันนี้ ผมแนะนำ Dapper)
--- ไม่มี พารามิเตอร์อีกแล้ว ช้าแต่ชัวร์คล้ายฯกับคำว่า Slowly As Ass Fuck

Code (C#)
            var objDivision = new sexy_Database.Models.Settings.MDivision //ชื่อตารางในฐานข้อมูล
            {
                Id = gId,
                Code = gCode,
                NameTH = gNameTH,
                NameUS = gNameUS,
                Remark = gRemark
            };

            try
            {
                using (var cn = SexyDatabase.SexyConnection())
                {
                    cn.Open(); 
                    using (var trans = cn.BeginTransaction())
                    {
                        try
                        {
                            switch (gActFlag)
                            {
                                case "A":
                                    cn.Insert<sexy_Database.Models.Settings.MDivision>(objDivision, trans);
                                    break;
                                case "E":
                                    cn.Update<sexy_Database.Models.Settings.MDivision>(objDivision, trans);
                                    break;
                                case "D":
                                    cn.Delete<sexy_Database.Models.Settings.MDivision>(objDivision, trans);
                                    break;
                            }
                            trans.Commit();
                        }
                        catch (Exception ex2)
                        {
                            hasError = ex2.Message;
                            trans.Rollback();
                        }
                    }
                }
            }
            catch (Exception ex1)
            {
                hasError = ex1.Message;                
            }
            return Ok(hasError);
        }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-09 22:14:11 By : หน้าฮี
 


 

No. 8

Guest


@ jirang ผมลืมบอกไปว่า สมัยก่อน ผมเขียน VB เป็นหลัก ผมเขียน C# ได้แค่งูงูปลาปลา
แต่ในไม่ช้าผมก็คงไม่อยากจะจดจำแต่มันกลับไม่ลืมในภาษา VB/C#

ถ้าคุณพอมีเวลา ลองศึกษาภาษา Python/Dart/etc...
คิดเสียว่า ได้คืบกลับได้ยาวเท่าศอก มันก็อัน(ดุ้นเดียวกัน)
-----

ขอให้โชคดีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-12-09 22:41:41 By : หน้าฮี
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : VB.NET โปรแกรมแจ้งเตือนว่า OleDbException: Multiple-step OLE DB operation generated errors. ค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่