2016-11-30 36 views
0
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Data.SqlClient; 

namespace LMS 
{ 
public partial class Member : Form 
{ 
    public Member() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     CreateNew(); 
    } 


    void CreateNew() 
    { 
     textBox1.Text = ""; 
     textBox2.Text = ""; 
     textBox3.Text = ""; 
     textBox4.Text = ""; 
     textBox5.Text = ""; 
     comboBox1.Text = ""; 
     comboBox2.Text = ""; 
     comboBox3.Text = ""; 
     Connection con = new Connection(); 
     SqlDataAdapter sda = new SqlDataAdapter("Proc_member", con.ActiveCon()); 
     sda.SelectCommand.CommandType = CommandType.StoredProcedure; 
     DataTable dt = new DataTable(); 
     sda.Fill(dt); 
     textBox1.Text = dt.Rows[0][0].ToString(); 
     textBox2.Focus(); 
    } 

    } 

    } 

我無法從此過程獲取任何值。我用不同形式的不同過程名稱使用相同的代碼(並且我保存了所有這些代碼)。它完美的工作,但在其他形式,它不斷產生這個錯誤。我只是一個初學者,所以請儘可能以最簡單的方式回答。System.Data.dll中發生未處理的類型'System.IndexOutOfRangeException'的異常在位置0處沒有行

+0

它看起來像PROC沒有返回任何結果來執行命令。 'textBox1.Text = dt.Rows [0] [0] .ToString();'試圖訪問不存在的記錄 – bixarrio

+0

記錄在tabel –

回答

2

你的數據表是空的,你需要前

using (SqlCommand command = new SqlCommand(sSql, con)) 
{ 
    using (SqlDataReader reader = command.ExecuteReader()) 
    { 
      while (reader.Read()) 
      {  
       DataTable dtSchema = reader.GetSchemaTable(); 
       for (int i = 0; i < reader.FieldCount; i++) 
       { 
        var fieldVal = reader.GetValue(i).ToString(); 
       } 
      } 
    } 
} 
相關問題