PDA

View Full Version : سوال: این پیغام خطا مال چیه؟



ffreydon
شنبه 21 اردیبهشت 1392, 16:22 عصر
کد زیر را نوشتم جواب میده اما پیغام خطای زیر را هم میده:

No mapping exists from object type System.Data.DataRowView to a known managed provider native type.

کد هم اینه:



try
{
SqlConnection objConnection = new SqlConnection("Data Source=.;Initial Catalog=Products;Integrated Security=True");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();

DataSet objDataSet = new DataSet();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.SelectCommand.CommandText = "SELECT PacketID FROM Packets";
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objConnection.Open();
objDataAdapter.Fill(objDataSet,"Packets");
objConnection.Close();
cmbPacketID.DataSource = objDataSet.Tables[0];
cmbPacketID.DisplayMember = "PacketID";
cmbPacketID.ValueMember = "PacketID";
objDataAdapter = null;
objConnection = null;
}

catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}



try
{

SqlConnection objConnection = new SqlConnection("Data Source=.;Initial Catalog=Products;Integrated Security=True");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.SelectCommand.CommandText = "SELECT ProductName FROM Product,Product_Version WHERE PacketID=1 AND Product_Version.ProductID=Product.ProductID";
objDataAdapter.SelectCommand.Parameters.AddWithVal ue("@PacketID", cmbPacketID.SelectedValue);
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objConnection.Open();
objDataAdapter.Fill(objDataSet, "Product");
objConnection.Close();
cmbPrPackage.DataSource = objDataSet.Tables[0];
cmbPrPackage.DisplayMember = "ProductName";
cmbPrPackage.ValueMember = "ProductName";
objDataAdapter = null;
objConnection = null;

}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}

amir200h
شنبه 21 اردیبهشت 1392, 16:30 عصر
به کدوم خط ایراد میگیره؟ عکسشم بزار

ffreydon
شنبه 21 اردیبهشت 1392, 17:01 عصر
توی خط های

cmbPacketID.DataSource = objDataSet.Tables[0];
و

cmbPrPackage.DataSource = objDataSet.Tables[0];

amir200h
شنبه 21 اردیبهشت 1392, 18:07 عصر
این کدو بزار ببین کار میکنه


try
{
SqlConnection objConnection = new SqlConnection("Data Source=.;Initial Catalog=Products;Integrated Security=True");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();

DataSet objDataSet = new DataSet();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.SelectCommand.CommandText = "SELECT PacketID FROM Packets";
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objConnection.Open();
objDataAdapter.Fill(objDataSet);
objConnection.Close();
cmbPacketID.DisplayMember = "PacketID";
cmbPacketID.ValueMember = "PacketID";
cmbPacketID.DataSource = objDataSet;
objDataAdapter = null;
objConnection = null;
}

catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}



try
{

SqlConnection objConnection = new SqlConnection("Data Source=.;Initial Catalog=Products;Integrated Security=True");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.SelectCommand.CommandText = "SELECT ProductName FROM Product,Product_Version WHERE PacketID=1 AND Product_Version.ProductID=Product.ProductID";
objDataAdapter.SelectCommand.Parameters.AddWithVal ue("@PacketID", cmbPacketID.SelectedValue);
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objConnection.Open();
objDataAdapter.Fill(objDataSet);
objConnection.Close();
cmbPrPackage.DisplayMember = "ProductName";
cmbPrPackage.ValueMember = "ProductName";
cmbPrPackage.DataSource = objDataSet;
objDataAdapter = null;
objConnection = null;

}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}

ffreydon
شنبه 21 اردیبهشت 1392, 19:20 عصر
ای ول دستت درد نکنه البته یه تغییر کوچیک دیگه می خواست کدم این شکلی شد



try
{
SqlConnection objConnection = new SqlConnection("Data Source=.;Initial Catalog=Products;Integrated Security=True");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();

DataSet objDataSet = new DataSet();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.SelectCommand.CommandText = "SELECT PacketID FROM Packets";
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objConnection.Open();
objDataAdapter.Fill(objDataSet);
objConnection.Close();

cmbPacketID.DisplayMember = "PacketID";
cmbPacketID.ValueMember = "PacketID";
cmbPacketID.DataSource = objDataSet.Tables[0];
objDataAdapter = null;
objConnection = null;
}

catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}


try
{

SqlConnection objConnection = new SqlConnection("Data Source=.;Initial Catalog=Products;Integrated Security=True");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.SelectCommand.CommandText = "SELECT ProductName,Product.ProductID FROM Product,Product_Version WHERE PacketID=@PacketID AND Product_Version.ProductID=Product.ProductID";
objDataAdapter.SelectCommand.Parameters.AddWithVal ue("@PacketID", cmbPacketID.SelectedValue);
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objConnection.Open();
objDataAdapter.Fill(objDataSet, "Product");
objConnection.Close();

cmbPrPackage.DisplayMember = "ProductName";
cmbPrPackage.ValueMember = "ProductID";
cmbPrPackage.DataSource = objDataSet.Tables[0];
objDataAdapter = null;
objConnection = null;

}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}

ولی میشه بگین اون اولیه مشکلش چی میتونه باشه؟
چون با اونم بعضی جاها جواب میگیرم
مرسی

amir200h
شنبه 21 اردیبهشت 1392, 19:39 عصر
شما ابتدا باید مقادیر زیرو تعین میکردین
cmbPacketID.DisplayMember = "PacketID"; cmbPacketID.ValueMember = "PacketID";
بعد کمبوباکستون رو پر میکردید