C # में DataTable कैसे बनाएं और पंक्तियों को कैसे जोड़ें?


197

C # में DataTable कैसे बनाते हैं?

मुझे यह पसंद आया:

 DataTable dt = new DataTable();
 dt.clear();
 dt.Columns.Add("Name");
 dt.Columns.Add("Marks");

मैं डेटाटेबल की संरचना को कैसे देखूँ?

अब मैं रवी को Nameऔर 500 के लिए जोड़ना चाहता हूं Marks। मैं यह कैसे कर सकता हूँ?


2
@प्यारा। बस एक टिप्पणी- यदि आप .NET 3.5 का उपयोग कर रहे हैं, तो आपको वास्तव में यह देखना चाहिए कि LINQ SQL प्रदान करता है। यदि आप डेटाटेबल / डेटासेट मार्ग को नीचे जाने का निर्णय लेते हैं तो कम से कम डेटाटैब बनाने के लिए देखें जो दृढ़ता से टाइप किए गए हैं।
रिचर्डॉड

जवाबों:


256

यहाँ कोड है:

DataTable dt = new DataTable(); 
dt.Clear();
dt.Columns.Add("Name");
dt.Columns.Add("Marks");
DataRow _ravi = dt.NewRow();
_ravi["Name"] = "ravi";
_ravi["Marks"] = "500";
dt.Rows.Add(_ravi);

संरचना को देखने के लिए, या इसके बजाय मैं इसे स्कीमा के रूप में फिर से लिखना चाहूँगा, आप इसे निम्न में से XML फ़ाइल में निर्यात कर सकते हैं।

केवल स्कीमा / संरचना निर्यात करने के लिए, करें:

dt.WriteXMLSchema("dtSchemaOrStructure.xml");

इसके अतिरिक्त, आप अपना डेटा निर्यात भी कर सकते हैं:

dt.WriteXML("dtDataxml");

8
DataTable क्लास में AddRow मेथड नहीं है। आपको dt.Rows.Add (_ravi) करना होगा; इसके बजाय
सलामंदर2007

1
और AddRow जैसी कोई चीज नहीं है। यह DataTable.Rows.Add ()
djdd87

यदि आप CurrentRows के अलावा फ़िल्टर के साथ DataView का उपयोग करते हैं, तो dt.AcceptChanges () कॉल करना न भूलें।
सलामन्डर

@ दान, @ सलामंदर 2007: सहमत। मैंने इसे अब बदल दिया है। गलती के लिए भूनें, जो हुआ bcoz मैं टाइप किए गए डेटासेट का उपयोग करता हूं जो इस बात का समर्थन करते हैं।
यह। __curious_geek

@ फीनिक्स: मैं सिर्फ सवाल पूछने वाले को अपने जवाब के साथ खुशी से संबंधित करना चाहता था।
यह। __curious_geek

66

आप किसी ऑब्जेक्ट सरणी में भी पास कर सकते हैं, जैसे:

DataTable dt = new DataTable();
dt.Clear();
dt.Columns.Add("Name");
dt.Columns.Add("Marks");
object[] o = { "Ravi", 500 };
dt.Rows.Add(o);

या और भी:

dt.Rows.Add(new object[] { "Ravi", 500 });

11
इस पर एक अन्य विकल्प यह है Addकि ऊपर दिखाए गए तरीके को ध्यान में रखते हुए, चर की संख्या के साथ एक अधिभार है, जिससे आप इसे छोटा कर सकते हैं dt.Rows.Add("Ravi", 500);और उसी पर काम करेंगे। इन तरीकों में से किसी एक के साथ एक बड़ी चेतावनी: आपको इन मापदंडों को ठीक उसी क्रम में आपूर्ति करना चाहिए जैसे कि कॉलम परिभाषित किए गए थे, अन्यथा आपको एक त्रुटि मिलेगी। (इसलिए सावधानी के साथ प्रयोग करें!)
फनका

34
// Create a DataTable and add two Columns to it
DataTable dt=new DataTable();
dt.Columns.Add("Name",typeof(string));
dt.Columns.Add("Age",typeof(int));

// Create a DataRow, add Name and Age data, and add to the DataTable
DataRow dr=dt.NewRow();
dr["Name"]="Mohammad"; // or dr[0]="Mohammad";
dr["Age"]=24; // or dr[1]=24;
dt.Rows.Add(dr);

// Create another DataRow, add Name and Age data, and add to the DataTable
dr=dt.NewRow();
dr["Name"]="Shahnawaz"; // or dr[0]="Shahnawaz";
dr["Age"]=24; // or dr[1]=24;
dt.Rows.Add(dr);

// DataBind to your UI control, if necessary (a GridView, in this example)
GridView1.DataSource=dt;
GridView1.DataBind();

29

डेटाटेबल बनाएँ:

DataTable MyTable = new DataTable(); // 1
DataTable MyTableByName = new DataTable("MyTableName"); // 2

तालिका में कॉलम जोड़ें:

 MyTable.Columns.Add("Id", typeof(int));
 MyTable.Columns.Add("Name", typeof(string));

डेटाटेबल विधि 1 में पंक्ति जोड़ें:

DataRow row = MyTable.NewRow();
row["Id"] = 1;
row["Name"] = "John";
MyTable.Rows.Add(row);

डेटाटेबल विधि 2 में पंक्ति जोड़ें:

MyTable.Rows.Add(2, "Ivan");

डेटाटेबल विधि 3 में पंक्ति जोड़ें (एक ही संरचना द्वारा दूसरी तालिका से पंक्ति जोड़ें):

MyTable.ImportRow(MyTableByName.Rows[0]);

डेटाटेबल विधि 4 में पंक्ति जोड़ें (किसी अन्य तालिका से पंक्ति जोड़ें):

MyTable.Rows.Add(MyTable2.Rows[0]["Id"], MyTable2.Rows[0]["Name"]);

डेटाटेबल विधि 5 में पंक्ति जोड़ें (एक इंडेक्स पर पंक्ति डालें):

MyTable.Rows.InsertAt(row, 8);

24

एक पंक्ति जोड़ने के लिए:

DataRow row = dt.NewRow();
row["Name"] = "Ravi";
row["Marks"] = 500;
dt.Rows.Add(row);

संरचना को देखने के लिए:

Table.Columns

18

आप चार लाइन के बजाय DataRow.Add (params ऑब्जेक्ट [] मान) का उपयोग करके एक लाइनर लिख सकते हैं।

dt.Rows.Add("Ravi", "500");

जैसा कि आप नई DataTableवस्तु बनाते हैं , बहुत अगले बयान में कोई आवश्यकता नहीं लगती है Clear DataTable। आप DataTable.Columns.AddRangeस्टेटमेंट पर कॉलम जोड़ने के लिए भी उपयोग कर सकते हैं । पूरा कोड होगा।

DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("Name"), new DataColumn("Marks") });     
dt.Rows.Add("Ravi", "500");

14

आप एक पंक्ति में पंक्ति जोड़ सकते हैं

    DataTable table = new DataTable();
    table.Columns.Add("Dosage", typeof(int));
    table.Columns.Add("Drug", typeof(string));
    table.Columns.Add("Patient", typeof(string));
    table.Columns.Add("Date", typeof(DateTime));

    // Here we add five DataRows.
    table.Rows.Add(25, "Indocin", "David", DateTime.Now);
    table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
    table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
    table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
    table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);

11
DataTable dt=new DataTable();
Datacolumn Name = new DataColumn("Name");
Name.DataType= typeoff(string);
Name.AllowDBNull=false; //set as null or not the default is true i.e null
Name.MaxLength=20; //sets the length the default is -1 which is max(no limit)
dt.Columns.Add(Name);
Datacolumn Age = new DataColumn("Age", typeoff(int));`

dt.Columns.Add(Age);

DataRow dr=dt.NewRow();

dr["Name"]="Mohammad Adem"; // or dr[0]="Mohammad Adem";
dr["Age"]=33; // or dr[1]=33;
dt.add.rows(dr);
dr=dt.NewRow();

dr["Name"]="Zahara"; // or dr[0]="Zahara";
dr["Age"]=22; // or dr[1]=22;
dt.rows.add(dr);
Gv.DataSource=dt;
Gv.DataBind();

9
DataTable dt=new DataTable();
DataColumn Name = new DataColumn("Name",typeof(string)); 

dt.Columns.Add(Name);
DataColumn Age = new DataColumn("Age", typeof(int));`

dt.Columns.Add(Age);

DataRow dr=dt.NewRow();

dr["Name"]="Kavitha Reddy"; 
dr["Age"]=24; 
dt.add.Rows(dr);
dr=dt.NewRow();

dr["Name"]="Kiran Reddy";
dr["Age"]=23; 
dt.Rows.add(dr);
Gv.DataSource=dt;
Gv.DataBind();

8

आपको इसके लिए डेटाटैब को अपने डेटाटेबल में जोड़ना होगा।

// Creates a new DataRow with the same schema as the table.
DataRow dr = dt.NewRow();

// Fill the values
dr["Name"] = "Name";
dr["Marks"] = "Marks";

// Add the row to the rows collection
dt.Rows.Add ( dr );

8

सबसे आसान तरीका अब के रूप में एक DtaTable बनाना है

DataTable table = new DataTable
{
    Columns = {
        "Name", // typeof(string) is implied
        {"Marks", typeof(int)}
    },
    TableName = "MarksTable" //optional
};
table.Rows.Add("ravi", 500);

4

अन्य उत्तरों के अलावा।

यदि आप डेटाटेबल की संरचना को नियंत्रित करते हैं तो पंक्तियों को जोड़ने के लिए एक शॉर्टकट है:

// मान लें कि आपके पास एक डेटा तालिका है जिसे आपके उदाहरण के रूप में परिभाषित किया गया है जिसका नाम dt dt.Rows.Add ("नाम", "मार्क्स") है;

DataRowCollection.Add () विधि में एक अधिभार है जो वस्तुओं के एक परम सरणी लेता है। यह विधि आपको आवश्यकतानुसार कई मानों को पास करने देती है, लेकिन उन्हें उसी क्रम में होना चाहिए, जैसे तालिका में कॉलम परिभाषित किए गए हैं।

इसलिए जब यह पंक्ति डेटा जोड़ने का एक सुविधाजनक तरीका है, तो इसका उपयोग करना जोखिम भरा हो सकता है। यदि तालिका संरचना बदल जाती है तो आपका कोड विफल हो जाएगा।


1

प्रश्न 1: C # में एक DataTable कैसे बनाते हैं?

उत्तर 1:

DataTable dt = new DataTable(); // DataTable created

// Add columns in your DataTable
dt.Columns.Add("Name");
dt.Columns.Add("Marks");

नोट: इसे बनानेClear()केDataTableबादकोई जरूरत नहींहै।

प्रश्न 2: पंक्ति (नों) को कैसे जोड़ा जाए?

उत्तर 2: एक पंक्ति जोड़ें:

dt.Rows.Add("Ravi","500");

कई पंक्तियों को जोड़ें: ForEachलूप का उपयोग करें

DataTable dt2 = (DataTable)Session["CartData"]; // This DataTable contains multiple records
foreach (DataRow dr in dt2.Rows)
{
    dt.Rows.Add(dr["Name"], dr["Marks"]);
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.