为了在数据库中插入大量数据,我曾经将所有插入信息收集到列表中并将此列表转换为a DataTable.然后我通过将该列表插入数据库SqlBulkCopy.
我发送生成的列表LiMyList
,其中包含我要插入数据库的所有批量数据的信息,并将其
传递给我的批量插入操作
InsertData(LiMyList, "MyTable");
Run Code Online (Sandbox Code Playgroud)
哪里InsertData是
public static void InsertData<T>(List<T> list,string TableName)
{
DataTable dt = new DataTable("MyTable");
clsBulkOperation blk = new clsBulkOperation();
dt = ConvertToDataTable(list);
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
using (SqlBulkCopy bulkcopy = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["SchoolSoulDataEntitiesForReport"].ConnectionString))
{
bulkcopy.BulkCopyTimeout = 660;
bulkcopy.DestinationTableName = TableName;
bulkcopy.WriteToServer(dt);
}
}
public static DataTable ConvertToDataTable<T>(IList<T> data)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
DataTable table = new DataTable();
foreach (PropertyDescriptor prop in properties)
table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
foreach (T item in data) …Run Code Online (Sandbox Code Playgroud) 有没有办法比较两个数字中哪个阶乘数更大而不计算?
场景是我正在创建ac#console应用程序,它需要两个因子输入
123!!!!!!
456!!!
Run Code Online (Sandbox Code Playgroud)
我想要做的就是比较哪个阶乘值大于其他因素,我所做的代码片段
try
{
string st = Console.ReadLine();
Int64 factCount = 0;
while (st.Contains('!'))
{
factCount = st.Where(w => w == '!').Count();
st = st.Replace('!', ' ');
};
decimal result = 1 ;
for (Int64 j = 0; j < factCount; j++)
{
UInt64 num = Convert.ToUInt64(st.Trim());
for (UInt64 x = num; x > 0; x--)
{
result = result * x;
}
}
if (factCount == 0)
{
result = Convert.ToUInt64(st.Trim());
}
string st2 = Console.ReadLine(); …Run Code Online (Sandbox Code Playgroud) 我有一份清单
List<Myclass> li = new List<Myclass>();
Run Code Online (Sandbox Code Playgroud)
Myclass的地方
class Myclass
{
public string name {get;set;}
public decimal age {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
li中的项目看起来像

i want to update `li` according to name but with `LINQ` like
li.where(w=> w.name = "di") = li.Where(w => w.name =="di").select(s => {s.age = 10;return s;}).Tolist();
li.where(w=> w.name = "marks") = li.Where(w => w.name =="marks").select(s => {s.age = 20;return s;}).Tolist();
li.where(w=> w.name = "grade") = li.Where(w => w.name =="grade").select(s => {s.age = 10;return s;}).Tolist();
Run Code Online (Sandbox Code Playgroud)
并希望看起来像这样的结果

我的代码给出错误,请你告诉我怎么做
我有一个DataGridView我设置的地方DataSource:
taskerEntities te = new taskerEntities();
var OMsMasterDescriptiveIndicators = te.MyTable.Select(x => new lccls {Id = x.Id, name = x.name }).ToList();
MyGrid.DataSource = OMsMasterDescriptiveIndicators;
Run Code Online (Sandbox Code Playgroud)
和我class lccls一样
public class lccls
{
public string Id { get; set; }
public Nullable<decimal> name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在某个事件中,我想让当前行不可见:
MyGrid.Rows[5].Visible = false;
Run Code Online (Sandbox Code Playgroud)
但我无法做到这一点.而是抛出异常,并显示以下错误消息:
与货币经理的头寸相关联的行不能隐藏
我怀疑原因与设置有关DataSource,但为什么呢?
我有很多与datagrid的数据源绑定有关的问题.我有一个DatagridView,我从列表中设置DataSource
List<Myclass> li = new List<MyClass>();
MyClass O = new MyClass();
O.Name = "Aden";
O.LastName = "B";
O.Id = 12;
li.Add(O);
O = new MyClass();
O.Name = "Li";
O.LastName = "S";
O.Id = 22;
li.Add(O);
Mydgv.DataSource = li;
Run Code Online (Sandbox Code Playgroud)
MyClass的地方
public Class MyClass
{
public string Name {get; set;}
public string LastName {get; set;}
public decimal Id {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
现在想要添加一个新的行到我的DataGridView
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
Mydgv.Rows.Add(row);
Run Code Online (Sandbox Code Playgroud)
但它是不可能的,因为它引发错误的数据源的DataGrid与列表绑定里.所以我的第一个问题是我怎么能这样做?
我的第二个问题是,为了做到这一点,我提出了一个解决方案来改变我的List li并向其添加新行数据,然后将其设置为datagrid的数据源,但我认为它不是一个可行的解决方案是否有更好的解决方案?
甚至试图通过CurrencyManager来做到这一点
CurrencyManager …Run Code Online (Sandbox Code Playgroud) 我有这些组框:

我想根据检查的单选按钮的真实状态运行一些代码,如:
string chk = radiobutton.nme; // Name of radio button whose checked is true
switch(chk)
{
case "Option1":
// Some code
break;
case "Option2":
// Some code
break;
case "Option3":
// Some code
break;
}
Run Code Online (Sandbox Code Playgroud)
有没有直接的方法,所以我只能得到已选中的单选按钮的名称?
我正在尝试创建一个函数,它在c#中的两个日期之间给出所有月份名称
List<string> liMonths = MyFunction(date1,date2);
Run Code Online (Sandbox Code Playgroud)
我的功能是
MyFunction(DateTime date1,DateTime date2)
{
//some code
return listOfMonths;
}
Run Code Online (Sandbox Code Playgroud)
你能帮帮我怎么办?
我有一个愚蠢的问题,但我被卡住了.我正在执行一个存储过程表单,我的代码过程需要时间,所以为此我显示一个进度条,显示执行的进度,但存储过程执行,没有任何东西,我增加进度条的值.
这是我的代码
void btnYes_Click(object sender, EventArgs e)
{
if (DialogResult.Yes == MessageBox.Show("Are you sure", "", MessageBoxButtons.YesNo))
{
try
{
dbDataEntities db = new dbDataEntities();
string myquery = "DECLARE @return_value int EXEC @return_value = [dbo].[ssspUpdateMarksOfStudent] SELECT 'Return Value' = @return_value";
//progressbar1.Maximum = 5000;
//progressbar1.value = ?; // how could i increment it
//
db.Database.ExecuteSqlCommand("myquery");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
此外,我尝试通过设置当前执行程序时没有增加的值来使用秒表
Stopwatch st = new Stopwatch();
st.Start();
progressbar1.Maximum = 5000;
progressbar1.Value = Convert.ToInt16(st.Elapsed.Seconds);
//My stored procedure call
st.Stop(); …Run Code Online (Sandbox Code Playgroud)
我正在执行一个查询,我想从中获取系统上安装的所有服务器名称
所以我用这个查询做了
select srvname from sysservers
Run Code Online (Sandbox Code Playgroud)
它给了我服务器名称,但它不是正确的服务器名称,它给我srvname
WIN-1BKHGVK7J3A\SQLSERVER2008R2
但这不是我的服务器名称,我试图通过此查询从另一种方式做到这一点
Select @@Servername
Run Code Online (Sandbox Code Playgroud)
它还给出了错误的服务器名称 WIN-1BKHGVK7J3A\SQLSERVER2008R2
但是当我用这个查询做的时候
SELECT SERVERPROPERTY ('ServerName')
Run Code Online (Sandbox Code Playgroud)
它提供了正确的服务器名称,AIS-OCTACORE\SQLserver2008r2
但这是限制,它只提供当前的服务器名称,我想在系统上安装所有服务器名称,
你能告诉我为什么我的服务器名称出错?
我怎么能得到所有的服务器名称
这是一个问题在.net中创建Edmx时,在创建DataBase的Edmx时,只添加那些具有主键的表和视图.
这个问题很容易解决,但只是在表或视图中制作列主键,但我没有得到它为什么必要的实际原因?
任何人都可以解释背后的原因吗?
c# ×8
.net ×4
datagridview ×2
datasource ×2
bulk ×1
data-binding ×1
decimal ×1
edmx ×1
factorial ×1
linq ×1
list ×1
primary-key ×1
progress-bar ×1
sql ×1
sql-server ×1