Hoi,
Alle eerst mijn excuses voor de onduidelijke titel. Ik kan helaas geen betere titel bedenken voor al mijn vragen met betrekking tot de DataAdapter update method.
Huidige situatie
in mijn data acces layer heb ik het bovenstaande method voor het invoeren van nieuwe gegevens. _dataAdapters is een hashTable die de verschillende DataAdapter opslaat. Bij het uitvoeren van het bovenstaande methode worden de gegevens van de desbetreffende table uitgevoerd. Onderwater wordt de sp_executesql storeprocedure aangeroepen. Na wat uitzoeken ben ik erachter gekomen dat deze geen system store procedure. Dit betekent dus dat je geen rechten kan toekennen aan een bepaalde gebruiker (of is hier een omweg voor?). Dus als ik nieuwe gegevens in een database wil invoeren dan moet ik in sqlserver de gebruiker rechten geven om gegevens in te kunnen voeren in bepaalde tabellen (insert permission).
Gewenste situatie
wat ik eigenlijk wil bereiken is zelf geschreven store procedure te gaan gebruiken door het bovenstaande methode een beetje aan te passen. Dit is wat ik nu heb:
het probleem zit in de parameters die je aan een command object moet toevoegen. hoe kan ik dit voor elkaar krijgen? Kan ik dit met behulp van de dataset object bereiken? zo ja hoe krijg ik dit voorelkaar?
of is er toch een manier om rechten toe te kennen een specifieke gebruiker van de sp_executesql als een store procedure?
Groet b
Alle eerst mijn excuses voor de onduidelijke titel. Ik kan helaas geen betere titel bedenken voor al mijn vragen met betrekking tot de DataAdapter update method.
Huidige situatie
code:
1
2
3
4
5
6
7
8
| public void Update(DataSet aDataSet,string table)
{
if(_dataAdapters.ContainsKey(table))
{
((SqlDataAdapter)_dataAdapters[table]).Update(aDataSet,table);
}
} |
in mijn data acces layer heb ik het bovenstaande method voor het invoeren van nieuwe gegevens. _dataAdapters is een hashTable die de verschillende DataAdapter opslaat. Bij het uitvoeren van het bovenstaande methode worden de gegevens van de desbetreffende table uitgevoerd. Onderwater wordt de sp_executesql storeprocedure aangeroepen. Na wat uitzoeken ben ik erachter gekomen dat deze geen system store procedure. Dit betekent dus dat je geen rechten kan toekennen aan een bepaalde gebruiker (of is hier een omweg voor?). Dus als ik nieuwe gegevens in een database wil invoeren dan moet ik in sqlserver de gebruiker rechten geven om gegevens in te kunnen voeren in bepaalde tabellen (insert permission).
Gewenste situatie
wat ik eigenlijk wil bereiken is zelf geschreven store procedure te gaan gebruiken door het bovenstaande methode een beetje aan te passen. Dit is wat ik nu heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| public void Insert(DataSet aDataSet,string table,string InsertStoreProcedureName)
{
if(_dataAdapters.ContainsKey(table))
{
SqlCommand insertCommand = new SqlCommand
(InsertStoreProcedureName,conn);
insertCommand .CommandType=CommandType.StoredProcedure;
[b]//problem parameterlist!!!![/b]
((OleDbDataAdapter)_dataAdapters[table]).InsertCommand=insertCommand;
conn.Open();
insertCommand.ExecuteNonQuery();
conn.Close();
}
} |
het probleem zit in de parameters die je aan een command object moet toevoegen. hoe kan ik dit voor elkaar krijgen? Kan ik dit met behulp van de dataset object bereiken? zo ja hoe krijg ik dit voorelkaar?
of is er toch een manier om rechten toe te kennen een specifieke gebruiker van de sp_executesql als een store procedure?
Groet b