मैं अपने SQL बॉक्स में SqlDataAdapter के माध्यम से एक मानक Sql चयन कथन भेज रहा हूं, फिर डेटासेट ऑब्जेक्ट को पॉप्युलेट कर रहा हूं।एक डेटासेट को एक दृश्य में वापस कैसे करें
मैं परिणामी डेटासेट में पंक्तियों तक पहुंच सकता हूं, लेकिन मैं डेटासेट को एक सूची में कैसे परिवर्तित कर सकता हूं जिसे एमवीसी व्यू में वापस किया जा सकता है। यानी मैं मानता हूं कि एक सूची वस्तु इसे संभालने का सबसे अच्छा तरीका है।
यहाँ मेरी नियंत्रक सी # कोड है:
public class QAController : Controller
{
private readonly static string connString = ConfigurationManager.ConnectionStrings["RegrDBConnection"].ToString();
private readonly static SqlConnection sqlConn = new SqlConnection(connString);
private readonly static SqlCommand sqlComm = new SqlCommand();
public ActionResult Index()
{
DbRegressionExec();
return View();
}
public static void DbRegressionExec()
{
// SELECT TABLE CONTENTS FROM SQL !!
RegressDB_TableList regresDB = new RegressDB_TableList();
string sqlStr = "select * from [RegressionResults].[dbo].[Diff_MasterList] order by TableName";
// POPULATE DATASET OBJECT
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlStr, sqlConn);
da.SelectCommand.CommandType = CommandType.Text;
sqlConn.Open();
try
{
da.Fill(ds, "RegresDB");
}
catch (Exception e)
{
throw;
}
finally
{
sqlConn.Close();
}
// I can iterate thru rows here, but HOW DO CONVERT TO A LIST OBJECT ????
int numRows = ds.Tables["RegresDB"].Rows.Count;
for (int i = 0; i < numRows; i++)
{
string tblName = ds.Tables["RegresDB"].Rows[i].Field<string>("TableName");
}
//List<RegressDB_TableList> masterList = regresDB.RegresTableList.ToList(); //not working !!
//var masterList = regresDB.TableName.ToList(); //
}
}
और एक साधारण वर्ग मैं बनाने के लिए आवश्यकता हो सकती है ऐसा:
namespace RegressionMvc.Models
{
public class RegresDB_TableName
{
public string TableName { get; set; }
}
public class RegressDB_TableList
{
public List<RegresDB_TableName> RegresTableList { get; set; }
}
}
अंत में, मैं कोशिश कर रहा हूँ एसक्यूएल सर्वर से डेटासेट परिणामों को संभालने का सर्वोत्तम तरीका और उन्हें एमवीसी व्यू पर वापस कैसे बनाएं।
मैं शायद jQuery और जेसन के साथ जा सकता हूं, जिसका अर्थ है कि डेटा फ़ील्ड को जेसन में परिवर्तित करें और JQuery पर वापस आएं, लेकिन मुझे यकीन है कि एसक्यूएल आधारित परिणाम सेट को संभालने के कई तरीके हैं।
आपकी सलाह के लिए अग्रिम धन्यवाद ....
बेस्ट, बॉब
एक मॉडल एक दृश्य के लिए पारित एक संपत्ति के रूप में एक डेटासेट हो सकता है (मैं बहुत यकीन है)। क्या कोई कारण है कि आप डेटासेट और/या डीएओ का उपयोग अधिक परिपक्व और दृढ़ता से टाइप की गई तकनीक जैसे एंटीटी फ्रेमवर्क या एनएचबेर्नेट (आदि) के बजाय कर रहे हैं? –
दृश्य में डेटासेट डेटा के साथ आप क्या करने जा रहे हैं?यदि आपको इसे संपादित करने और इसे नियंत्रक कार्रवाई में वापस करने की आवश्यकता है, तो आप डेटासेट डेटा को अधिक दृश्य-अनुकूल डेटा संरचना में स्थानांतरित करना चाहते हैं। –