Value cannot be null. Parameter name: dataSource
سلام
من یه برنامه برای تاکسی سرویس دارم مینویسم
ولی توی خطی که نوشتم iDTextBox.DataBindings.Add("Text", objDataView, "ID");
error میده:گریه::گریه::گریه:
اینم کد برنامه
public partial class Form1 : Form
{
private const string _Commandtext = "SELECT ID,FirstName,LastName,Address,TelNumber FROM db1";
private const string _ConnectionString = "Server=localhost;Database=db1;User ID=Admin;Password=;";
SqlConnection objConnection;
SqlDataAdapter objDataAdapter;
DataSet objDataSet;
DataView objDataView;
CurrencyManager objCurrencyManager;
private void FillDataSetAndView()
{
objDataAdapter = new SqlDataAdapter();
objDataSet = new DataSet();
objDataAdapter.Fill(objDataSet, "db1");
objDataView = new DataView(objDataSet.Tables["db1"]);
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataView]);
}
private void BindFields()
{
iDTextBox.DataBindings.Clear();
firstNameTextBox.DataBindings.Clear();
lastNameTextBox.DataBindings.Clear();
addressTextBox.DataBindings.Clear();
telNumberTextBox.DataBindings.Clear();
iDTextBox.DataBindings.Add("Text", objDataView, "ID");
firstNameTextBox.DataBindings.Add("Text", objDataView, "FirstName");
lastNameTextBox.DataBindings.Add("Text", objDataView, "LastName");
addressTextBox.DataBindings.Add("Text", objDataView, "Address");
telNumberTextBox.DataBindings.Add("Text", objDataView, "TelNumbre");
statusStrip1.Text = "Ready";
}
public Form1()
{
objConnection = new SqlConnection(_ConnectionString);
objDataAdapter = new SqlDataAdapter(_Commandtext, objConnection);
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'db1DataSet.Moshtarakin' table. You can move, or remove it, as needed.
this.moshtarakinTableAdapter.Fill(this.db1DataSet. Moshtarakin);
BindFields();
FillDataSetAndView();
}
private void BtnClear_Click(object sender, EventArgs e)
{
}
}
نقل قول: Value cannot be null. Parameter name: dataSource
اسم جدولتونو قبل از اسم فیلد جا انداخیتن :
iDTextBox.DataBindings.Add("Text", objDataView, "db1.ID");
و همین طور در مورد سایر textBox هاتون اینکارو انجام بدید ...
نقل قول: Value cannot be null. Parameter name: dataSource
من این تغییرات رو اعمال کردم نشد باز روی همون خط error میده
iDTextBox.DataBindings.Add("Text", objDataView, "db1.ID");
firstNameTextBox.DataBindings.Add("Text", objDataView, "db1.FirstName");
lastNameTextBox.DataBindings.Add("Text", objDataView, "db1.LastName");
addressTextBox.DataBindings.Add("Text", objDataView, "db1.Address");
telNumberTextBox.DataBindings.Add("Text", objDataView, "db1.TelNumbre");
نقل قول: Value cannot be null. Parameter name: dataSource
کی میتونه مشکل این کد رو بگه؟
نقل قول: Value cannot be null. Parameter name: dataSource
یادم رفت بگم مشکلی که در کد شما هست اینه که شما در بایند کردن بجای استفاده از objDataSet از objDataView استفاده کردید یعنی کدتون باید اینطوری باشه :
iDTextBox.DataBindings.Add("Text", objDataSet , "db1.ID");
نقل قول: Value cannot be null. Parameter name: dataSource
عزیز واقعا متشکرم از اینکه حوصله به خرج میدی و منو راهنمایی میکنی:قلب::بوس:
بازم مشکلش حل نشد .ببین من توی فایل اکسسم فیلد ای دی رو auto number کردم این نمیتونه مشکل ساز باشه؟؟؟
نقل قول: Value cannot be null. Parameter name: dataSource
ایا نیاز نیست تبدیلی چیزی بشه؟؟
اخه ما این قسمت کد نوشتیم :
iDTextBox.DataBindings.Add("Text", objDataView, "db1.ID");
وقتی آدم به مشکلی میخوره هزار جور احتمال به ذهنش میرسه
شما خودتون همین کد رو بنویسید شاید مشکلشو بهتر متوجه بشید
نقل قول: Value cannot be null. Parameter name: dataSource
من فایل اکسس رو تغییر دادم و یه پروژه ی جدید نوشتم
حالا از این خط خطا میگیره
objDataAdapter.Fill(objDataSet, "db1");
میگه:
The SelectCommand property has not been initialized before calling 'Fill'.
اینم کد کامل
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsApplication3
{
public partial class Form1 : Form
{
private const string _Commandtext = "SELECT ID,FirstName,LastName,Address,TelNumber FROM db1";
private const string _ConnectionString = "Server=localhost;Database=db1;User ID=Admin;Password=;";
SqlConnection objConnection;
SqlDataAdapter objDataAdapter;
DataSet objDataSet;
DataView objDataView;
CurrencyManager objCurrencyManager;
private void FillDataSetAndView()
{
objDataAdapter = new SqlDataAdapter();
objDataSet = new DataSet();
objDataAdapter.Fill(objDataSet, "db1");
objDataView = new DataView(objDataSet.Tables["db1"]);
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataView]);
}
private void BindFields()
{
iDTextBox.DataBindings.Clear();
firstNameTextBox.DataBindings.Clear();
lastNameTextBox.DataBindings.Clear();
addressTextBox.DataBindings.Clear();
telNumberTextBox.DataBindings.Clear();
iDTextBox.DataBindings.Add("Text", objDataSet, "db1.ID");
firstNameTextBox.DataBindings.Add("Text", objDataSet, "db1.FirstName");
lastNameTextBox.DataBindings.Add("Text", objDataSet, "db1.LastName");
addressTextBox.DataBindings.Add("Text", objDataSet, "db1.Address");
telNumberTextBox.DataBindings.Add("Text", objDataSet, "db1.TelNumbre");
statusStrip1.Text = "Ready";
}
public Form1()
{
InitializeComponent();
objConnection = new SqlConnection(_ConnectionString);
objDataAdapter = new SqlDataAdapter(_Commandtext, objConnection);
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'db1DataSet.Moshtarakin' table. You can move, or remove it, as needed.
this.moshtarakinTableAdapter.Fill(this.db1DataSet. Moshtarakin);
FillDataSetAndView();
BindFields();
}
}
}
نقل قول: Value cannot be null. Parameter name: dataSource
نقل قول:
The SelectCommand property has not been initialized before calling 'Fill'
در این متد، که من ذکر کردم شما خاصیت objDataAdapter.SelectCommand.CommandText رو تنظیم نکردید، باید قبل از متد Fill اون رو تنظیم کنید :
private void FillDataSetAndView()
{
objDataAdapter = new SqlDataAdapter();
objDataSet = new DataSet();
objDataAdapter.Fill(objDataSet, "db1");
objDataView = new DataView(objDataSet.Tables["db1"]);
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataView]);
}
ظاهرا بدین شکل باید بنویسید :
private void FillDataSetAndView()
{
objDataAdapter = new SqlDataAdapter();
objDataSet = new DataSet();
objDataAdapter.SelectCommand.CommantText = Commandtext;
objDataAdapter.Fill(objDataSet, "db1");
objDataView = new DataView(objDataSet.Tables["db1"]);
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataView]);
}
در مورد سوال اولتون، اگه هنوز حل نشده، لطفا بگو وقتی خطا میگیره، روی کدوم آبجکت میگیره ؟ اگه روی objDataView میگیره، این پارامتر رو امتحان کنید :
objDataView.Table
نقل قول: Value cannot be null. Parameter name: dataSource
ممنون مشکل دومی حل شد ولی اولی نه هنوز حل نشده
این خطا رو میده :
Value cannot be null.
Parameter name: dataSource
واین خط رو زرد میکنه
iDTextBox.DataBindings.Add("Text", objDataSet, "db1.ID");
نقل قول: Value cannot be null. Parameter name: dataSource
قسمت دوم صحبتم رو انجام دادی ؟
نقل قول:
در مورد سوال اولتون، اگه هنوز حل نشده، لطفا بگو وقتی خطا میگیره، روی کدوم آبجکت میگیره ؟ اگه روی objDataView میگیره، این پارامتر رو امتحان کنید :
objDataView.Table
نقل قول: Value cannot be null. Parameter name: dataSource
چون کد کامل رو نذاشته بودید دقیقا متوجه نشدم باید چیکار کنم
باید کجا رو تغییر بدم؟؟
منظرتون اینه که این کارو بکنم؟
iDTextBox.DataBindings.Add("Text", objDataView.Table, "ID");
نقل قول: Value cannot be null. Parameter name: dataSource
آره، دقیقا همینطوره، درست شد ؟
نقل قول: Value cannot be null. Parameter name: dataSource
نه متاسفانه فقط خطاش عوض شد
تغییر کد
private void BindFields()
{
iDTextBox.DataBindings.Clear();
firstNameTextBox.DataBindings.Clear();
lastNameTextBox.DataBindings.Clear();
addressTextBox.DataBindings.Clear();
telNumberTextBox.DataBindings.Clear();
iDTextBox.DataBindings.Add("Text",objDataView.Tabl e,"ID");
firstNameTextBox.DataBindings.Add("Text", objDataView.Table, "db1.FirstName");
lastNameTextBox.DataBindings.Add("Text", objDataView.Table, "db1.LastName");
addressTextBox.DataBindings.Add("Text", objDataView.Table, "db1.Address");
telNumberTextBox.DataBindings.Add("Text", objDataView.Table, "db1.TelNumbre");
statusStrip1.Text = "Ready";
}
خطای جدیدی که میگیره اینه:
Object reference not set to an instance of an object.
نقل قول: Value cannot be null. Parameter name: dataSource
با راهنمایی هایی که داشتین میکردین امیدم به درست شدنش برگشت اگه میشه ادامه بدین
نقل قول: Value cannot be null. Parameter name: dataSource
نقل قول:
خطای جدیدی که میگیره اینه:
Object reference not set to an instance of an object
وقتی این خطا اتفاق میفته، با ماوس روی متغیر objDataView برو ببین آیا مقدارش null هست یا (برای اینکه بفهمیم این خطا مربوط به اونه یا نه)، اگر اینطوریه، ببین این آبجکت کجا تعریف شده، احتمالا ازش new نکردی و یا خالی از داده است.