[C#]There is already an open DataReader associated with this Connection which must be closed first DataBase General

[C#][MySQL]There is already an open DataReader associated with this Connection which must be closed first
에서 일어나는 에러

이중 DataReader를 쓸때 발생

해결책

1. 2개의 트랜잭션을 만들고 DataReader 를 쓸때 서로 다른 Conn 을 쓴다

2. DataSet 을 이용하여 처리하는 방법.

[믹시인증]믹시인증용 글 일어번역

PRXAmR7dZ1MhC-JByL0hQ1U_Snm12CbsNlWk8TxSPAQ,

[Timer Accuracy]1ms 타이머 C# General

System.Windows.Forms -> 55ms

System.Threading.Timer or System.Timers.Timer -> 10ms

자 그러면 1ms 의 정확성이 필요한 타이머를 사용할 필요 성이 있을때는?

구글을 뒤져보면 여러가지의 라이브러리 들이 나오는데 그 외에 XNA Timer(게임 프로그래밍에 사용되는 것으로 대체로 아주 높은
정확성)

유용한 라이브러리가 있는 줄 알고 온 사람은 낚였음... ㅎㅎ

검색을 생활화 합시다^^

//The timeSetEvent() function from the multi-media API provides for a very accurate periodic callback that is //auto-//adjusting  and can go as low as 1msec.  Here's some code to try it out:

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace WindowsApplication1 {
  public partial class Form1 : Form {
    private int mTimerId;
    private TimerEventHandler mHandler;  // NOTE: declare at class scope so garbage collector doesn't release it!!!
    private int mTestTick;
    private DateTime mTestStart;
   
    public Form1() {
      InitializeComponent();
      label1 = new Label();
      label1.Location = new Point(10, 5);
      label2 = new Label();
      label2.Location = new Point(10, 30);
      this.Controls.Add(label1);
      this.Controls.Add(label2);
    }
    protected override void OnLoad(EventArgs e) {
      timeBeginPeriod(1);
      mHandler = new TimerEventHandler(TimerCallback);
      mTimerId = timeSetEvent(1, 0, mHandler, IntPtr.Zero, EVENT_TYPE);
      mTestStart = DateTime.Now;
      mTestTick = 0;
    }
    protected override void OnFormClosing(FormClosingEventArgs e) {
      mTimerId = 0;
      int err = timeKillEvent(mTimerId);
      timeEndPeriod(1);
      // Ensure callbacks are drained
      System.Threading.Thread.Sleep(100);
    }
    private delegate void TestEventHandler(int tick, TimeSpan span);
    private void TimerCallback(int id, int msg, IntPtr user, int dw1, int dw2) {
      mTestTick += 1;
      if ((mTestTick % 200) == 0 && mTimerId != 0)
        this.BeginInvoke(new TestEventHandler(ShowTick), mTestTick, DateTime.Now - mTestStart);
    }
    private void ShowTick(int msec, TimeSpan span) {
      label1.Text = msec.ToString();
      label2.Text = span.TotalMilliseconds.ToString();
    }

    // P/Invoke declarations
    private delegate void TimerEventHandler(int id, int msg, IntPtr user, int dw1, int dw2);
    private const int TIME_PERIODIC = 1;
    private const int EVENT_TYPE = TIME_PERIODIC;// + 0x100;  // TIME_KILL_SYNCHRONOUS causes a hang ?!
    [DllImport("winmm.dll")]
    private static extern int timeSetEvent(int delay, int resolution, TimerEventHandler handler, IntPtr user, int eventType);
    [DllImport("winmm.dll")]
    private static extern int timeKillEvent(int id);
    [DllImport("winmm.dll")]
    private static extern int timeBeginPeriod(int msec);
    [DllImport("winmm.dll")]
    private static extern int timeEndPeriod(int msec);
  }
}

//above source is from the MSDN

[ACCESS Tips] 2개 이상의 응용프로그램에서 하나의 MDB에 접근할 경우... DataBase General

회사 업무에서 사용하는 응용 프로그램과 타 회사의 응용 프로그램이 같은 mdb 파일을 억세스 하려고 할때~

C#으로 작업중이었고 "이미 사용중인 파일입니다" 에러가 살포시 떴다~.

구글을 뒤져보니??

ldb 파일을 이용해서 어쩌고 저쩌고... 한 방법이 있었고,
간단한 방법으로(Window XP에 한해서) 해당 mdb파일이 있는 폴더에 EveryOne 계정을 추가하고 쓰기 권한까지 주면 해결이 된다~

결혼 전, 결혼 후(대박 웃겨 ㅋㅋ) 유머^^

결혼전 ↓
남: 아! 좋아 좋아 ㅠ.ㅠ 기다리다가 목 빠지는 줄 알았어.
여: 당신, 내가 당신을 떠난다면 어떡할꺼야?
남 그런거 꿈도 꾸지 마!!
여: 나 사랑해?
남: 당연하지! 죽을 때까지!!
여: 당신, 바람 필 거야?
남: 뭐? 도대체 그딴 건 왜 묻는 거야?
여: 나 매일 매일 키스해 줄거야?
남: 기회 될 때마다!
여: 당신 나 때릴 거야?
남: 미쳤어? 사람 보는 눈이 그렇게 없어?
여: 나 당신 믿어도 돼?
남: 응.
여: 여보!
결혼후 ↑

1 2 3 4 5 6 7 8 9 10 다음


 

 

트위터 위젯

믹시

믹시