sal*_*ere 10 c# dictionary visual-studio-2008
我正在开发一个C#VS2008/SQL Server网站应用程序,并且是Dictionary类的新手.你能告诉你最好的方法吗?这是一段代码:
SqlConnection conn2 = new SqlConnection(connString);
SqlCommand cmd = conn2.CreateCommand();
cmd.CommandText = "dbo.AppendDataCT";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = conn2;
SqlParameter p1, p2, p3;
foreach (string s in dt.Rows[1].ItemArray)
{
DataRow dr = dt.Rows[1]; // second row
p1 = cmd.Parameters.AddWithValue((string)dic[0], (string)dr[0]);
p1.SqlDbType = SqlDbType.VarChar;
p2 = cmd.Parameters.AddWithValue((string)dic[1], (string)dr[1]);
p2.SqlDbType = SqlDbType.VarChar;
p3 = cmd.Parameters.AddWithValue((string)dic[2], (string)dr[2]);
p3.SqlDbType = SqlDbType.VarChar;
}
Run Code Online (Sandbox Code Playgroud)
但这给了我编译器错误:
The best overloaded method match for 'System.Collections.Generic.Dictionary<string,string>.this[string]' has some invalid arguments
Run Code Online (Sandbox Code Playgroud)
我只想从"dic"访问每个值并加载到这些SQL参数中.我该怎么做呢?我必须输入密钥吗?键被命名为"col1","col2"等,因此不是最方便用户的.还有其他提示吗?谢谢!
Gra*_*ark 13
甲Dictionary一种类型的地图对象转换成另一种类型的对象.在你的情况下,你有一个Dictionary<string, string>.所以,如果你有这样的初始化:
Dictionary<string, string> dic = new Dictionary<string, string>()
{
{ "key1", "value1" },
{ "key2", "value2" },
{ "key3", "value3" }
};
Run Code Online (Sandbox Code Playgroud)
你可以key2通过这样做获得价值
dic["key2"]; // gives "value2"
Run Code Online (Sandbox Code Playgroud)
它Dictionary是强类型的,所以不需要任何铸造.正如Jon Skeet所说,你List<string>在这里可能会更好.您可以通过整数索引访问它们.
你似乎在试图访问一个Dictionary<string, string>由整数索引.你不能这样做 - 你必须通过键查找值,这是一个字符串.
如果您不想使用字符串键,为什么要使用a Dictionary<string, string>开头?你能用一个List<string>还是一个Dictionary<int, string>?
需要注意的是,一旦你已经成功地正确使用索引,你将不再需要转换为字符串.
| 归档时间: |
|
| 查看次数: |
35616 次 |
| 最近记录: |