मैं अपने सी # एप्लिकेशन में SQL सर्वर डेटाबेस की सभी तालिका का नाम प्राप्त करना चाहता हूं। क्या यह संभव है? कृपया मुझे समाधान बताओ।क्या मुझे सी # एप्लिकेशन में SQL सर्वर डेटाबेस की सभी तालिकाओं का नाम मिल सकता है?
उत्तर
यह इस रूप में सरल है जो पहले से ही सही डेटाबेस से जुड़ा हुआ है।
भागो एक एसक्यूएल आदेश के लिए:
SELECT name FROM sysobjects WHERE xtype = 'U'
एक ही रास्ता के लिए How to get a list of SQL Server databases देखें:
DataTable t = _conn.GetSchema("Tables");
जहां _conn
एक SqlConnection ऑब्जेक्ट है:
System.Data.SqlClient.SqlConnection SqlCon = new System.Data.SqlClient.SqlConnection("server=192.168.0.1;uid=sa;pwd=1234");
SqlCon.Open();
System.Data.SqlClient.SqlCommand SqlCom = new System.Data.SqlClient.SqlCommand();
SqlCom.Connection = SqlCon;
SqlCom.CommandType = CommandType.StoredProcedure;
SqlCom.CommandText = "sp_databases";
System.Data.SqlClient.SqlDataReader SqlDR;
SqlDR = SqlCom.ExecuteReader();
while(SqlDR.Read())
{
MessageBox.Show(SqlDR.GetString(0));
}
तुम भी संग्रहीत proc :) – slugster
की जरूरत नहीं है इस डेटाबेस, टेबल नहीं है के रूप में पूछा गया तो सही ? –
आप एक डेटाबेस आप कुछ इस तरह कर सकते हैं से सभी तालिका नाम प्राप्त करना चाहते हैं;
string[] GetAllTables(SqlConnection connection)
{
List<string> result = new List<string>();
SqlCommand cmd = new SqlCommand("SELECT name FROM sys.Tables", connection);
System.Data.SqlClient.SqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
result.Add(reader["name"].ToString());
return result.ToArray();
}
अन्य प्रतिक्रिया के प्रयोग से सभी डेटाबेस प्राप्त करें और प्रत्येक के लिए एक कनेक्शन बना सकते हैं और समारोह "GetAllTables" का उपयोग करें कि डाटाबेस से सभी तालिका नाम मिलता है।
आपका कोड काम करता है। हालांकि आप कनेक्शन खोलने और बंद करने के लिए चूक गए। –
बस एक और समाधान:
public IList<string> ListTables()
{
List<string> tables = new List<string>();
DataTable dt = _connection.GetSchema("Tables");
foreach (DataRow row in dt.Rows)
{
string tablename = (string)row[2];
tables.Add(tablename);
}
return tables;
}
क्या आपने स्लगर जवाब देखा है? –
'(स्ट्रिंग) पंक्ति [2]; 'मेरी मदद की। धन्यवाद। –
एक और तरीका है, लेकिन उल्लेख के लायक: Microsoft.SqlServer.Smo.dll में निहित एपीआई बनाता बहुत पहुँच डेटाबेस के लिए:
private IEnumerable<string> getAllTables()
{
var sqlConnection = new System.Data.SqlClient.SqlConnection(connectionString);
var serverConnection = new Microsoft.SqlServer.Management.Common.ServerConnection(sqlConnection);
var server = new Microsoft.SqlServer.Management.Smo.Server(serverConnection);
var database = server.Databases[databaseName];
foreach (Microsoft.SqlServer.Management.Smo.Table table in database.Tables)
{
yield return table.Name;
}
}
सबसे अच्छे बात कि Microsoft.SqlServer.Management.Smo.Table वस्तु स्कीमा, पटकथा, आदि बदलने जैसे कार्यों के सभी प्रकार के प्रदर्शन करने के लिए आप की अनुमति देता है ...
Yonexbat उत्तर का मेरा संस्करण
public System.Collections.Generic.Dictionary<string, string> GetAllTables(System.Data.SqlClient.SqlConnection _connection)
{
if (_connection.State == System.Data.ConnectionState.Closed)
_connection.Open();
System.Data.DataTable dt = _connection.GetSchema("Tables");
System.Collections.Generic.Dictionary<string, string> tables = new System.Collections.Generic.Dictionary<string, string>();
foreach (System.Data.DataRow row in dt.Rows)
{
if (row[3].ToString().Equals("BASE TABLE", StringComparison.OrdinalIgnoreCase)) //ignore views
{
string tableName = row[2].ToString();
string schema = row[1].ToString();
tables.Add(tableName, schema);
}
}
_connection.Close();
return tables;
}
उसके जवाब के लिए स्लगस्टर के लिए धन्यवाद। डेटाबेस में तालिकाओं की सूची को देखने का तरीका विस्तारित स्पष्टीकरण यहां दिया गया है।
<div>
<asp:Button ID="GridViewTableListButton" runat="server" Text="List all Tables on server"
onclick="GridViewTableListButton_Click" />
<asp:GridView ID="GridViewTableList" runat="server">
</asp:GridView>
</div>
तो सी में # कोड पीछे निम्नलिखित समारोह जोड़ें::
protected void GridViewTableListButton_Click(object sender, EventArgs e)
{
objConn.Open();
DataTable t = objConn.GetSchema("Tables");
GridViewTableList.DataSource = t;
GridViewTableList.DataBind();
objConn.Close();
}
using System.Data;
जोड़ने के लिए भूल नहीं और
एक asp.net रूप मेंनिम्नलिखित जोड़ें
SqlConnection objConn = new SqlConnection();
अपने माता पिता के वर्ग के भीतर आप पृष्ठ/के शीर्ष पर।
अपने Page_Load अंदर के साथ:
objConn.ConnectionString = ConfigurationManager.ConnectionStrings[connString].ConnectionString;
connString एक वर्ग फ़ाइल (connectionClass.cs कहा जाता है) है कि वेब में App_Code फ़ोल्डर में संग्रहीत किया जाता
public class connectionClass
{
.....
public string connClass()
{
connString = "LocalSqlServer"; // LOCAL home PC Version
}
}
तो अंत में।config
<add name="LocalSqlServer" connectionString="Data Source=MyPCsName\SQLEXPRESS;Initial Catalog=databasename;Integrated Security=True" providerName="System.Data.SqlClient"/>
उदाहरण
मैं इस ExtensionMethod
SqlConnection
के लिए उपयोग कर रहा हूँ के लिए:
public static List<string> GetTableNames(this SqlConnection connection)
{
using(SqlConnection conn = connection)
{
if(conn.State == ConnectionState.Open)
{
return conn.GetSchema("Tables").AsEnumerable().Select(s => s[2].ToString()).ToList();
}
}
//Add some error-handling instead !
return new List<string>();
}
- 1. डेटाबेस में सभी तालिकाओं का नाम बदलें
- 2. SQL सर्वर 2008 डेटाबेस
- 3. SQL डेटाबेस में तालिकाओं की सूची का चयन करें
- 4. SQL सर्वर डेटाबेस
- 5. SQL सर्वर में सभी मौजूदा अस्थायी तालिकाओं की सूची प्राप्त करने का कोई तरीका है?
- 6. SQL सर्वर डेटाबेस
- 7. SQL सर्वर डेटाबेस भूमिकाएं
- 8. SQL सर्वर डेटाबेस प्रोजेक्ट
- 9. SQL सर्वर 2005 डेटाबेस
- 10. क्या मुझे रेफरर मिल सकता है?
- 11. SQL सर्वर डेटाबेस
- 12. मुझे असेंबली का मजबूत नाम कैसे मिल सकता है?
- 13. मुझे सभी एंड्रॉइड एप्लिकेशन श्रेणियों का नाम कैसे मिलता है?
- 14. क्या मुझे किसी SQL सर्वर डेटाबेस प्रोजेक्ट में किसी लिंक किए गए सर्वर के लिए डेटाबेस संदर्भ की आवश्यकता है?
- 15. SQL सर्वर में किसी दिनांक से मुझे माह संख्या (महीने का नाम नहीं) कैसे मिल सकता है?
- 16. SQL सर्वर में बड़ी तालिकाओं को विभाजित करने का सबसे अच्छा तरीका क्या है?
- 17. क्या किसी SQL सर्वर डेटाबेस
- 18. SQL सर्वर 2005 डेटाबेस
- 19. SQL सर्वर (क्रॉस-डेटाबेस)
- 20. कैसे सभी तालिकाओं
- 21. किसी SQL सर्वर डेटाबेस
- 22. मैं एक SQL सर्वर डेटाबेस
- 23. SQL सर्वर 2005 डेटाबेस
- 24. मुझे सभी आईओएस तत्वों की सूची कहां मिल सकती है?
- 25. मुझे TableDiff.exe कहां मिल सकता है?
- 26. SQL सर्वर डेटाबेस नाम में कौन से वर्ण मान्य हैं?
- 27. उपयोग Tablediff सभी तालिकाओं
- 28. SQL सर्वर प्रबंधन स्टूडियो में क्या मैं एकाधिक डेटाबेस में संपत्तियों की खोज कर सकता हूं?
- 29. LINQ: MySQL और SQL सर्वर तालिकाओं में शामिल हों
- 30. क्या मुझे `FILE *` का एक्सेस मोड मिल सकता है?
क्वेरी-आधारित विधियों पर इस विधि का एक लाभ यह है कि आप डेटाटेबल में तालिकाओं के बारे में मेटाडेटा प्राप्त करते हैं, जो क्वेरी का उपयोग करके सरल नहीं है। (लेकिन मुझे अभी एहसास हुआ कि आपको केवल नाम चाहिए :)) – apoorv020