嗨我在MVC4中使用C#将一些值插入到sql表中.实际上我想插入值并返回最后插入记录的"ID".我使用以下代码.
public class MemberBasicData
{
public int Id { get; set; }
public string Mem_NA { get; set; }
public string Mem_Occ { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
插入时,ID在数据库中自动递增.
public int CreateNewMember(string Mem_NA, string Mem_Occ )
{
using (SqlConnection con=new SqlConnection(Config.ConnectionString))
{
using(SqlCommand cmd=new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ)",con))
{
cmd.Parameters.AddWithValue("@na", Mem_NA);
cmd.Parameters.AddWithValue("@occ", Mem_Occ);
con.Open();
int modified = cmd.ExecuteNonQuery();
if (con.State == System.Data.ConnectionState.Open) con.Close();
return modified;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道ExecuteNonQuery表示影响行的数字.而不是我使用
int modified = (int)cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)
但不行.请帮我解决这个问题.是否有任何代码,如cmd.ExecuteInsertAndGetID()(不使用我的代码).
我有两个文本文件,Source.txt和Target.txt.源将永远不会被修改并包含N行文本.所以,我想删除Target.txt中的特定文本行,并用Source.txt中的特定文本行替换,我知道我需要的行数,实际上是行号2,两个文件.
我有这样的事情:
string line = string.Empty;
int line_number = 1;
int line_to_edit = 2;
using (StreamReader reader = new StreamReader(@"C:\source.xml"))
{
using (StreamWriter writer = new StreamWriter(@"C:\target.xml"))
{
while ((line = reader.ReadLine()) != null)
{
if (line_number == line_to_edit)
{
writer.WriteLine(line);
}
line_number++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我打开Writer时,目标文件被擦除,它会写入行,但是,当打开时,目标文件只包含复制的行,其余的则丢失.
我能做什么?
我需要一些帮助.....
在我的.bashrc文件中,我有一个非常有用的功能(它可能有点粗糙和准备,有点hacky,但它有效!)它读取输入文件,并在每个上使用'tree'函数输入行来创建目录树.然后将此树打印到输出文件(以及文件夹的大小)中.
multitree()
{
while read cheese
do
pushd . > /dev/null
pushd $cheese > /dev/null
echo -e "$cheese \n\n" >> ~/Desktop/$2.txt
tree -idf . >> ~/Desktop/$2.txt
echo -e "\n\n\n" >> ~/Desktop/$2.txt
du -sh --si >> ~/Desktop/$2.txt
echo -e "\n\n\n\n\n\n\n" >> ~/Desktop/$2.txt
popd > /dev/null
done < $1
cat ~/done
}
Run Code Online (Sandbox Code Playgroud)
这可以节省时间,并输出如下所示的代码段:
./foo
./foo/bar
./foo/bar/1
./foo/bar/1/2
Run Code Online (Sandbox Code Playgroud)
等等....
然而,我需要做的第一个(也是最繁琐的)是删除所有条目,只留下最深的文件夹路径(使用上面的例子,它将简化为./foo/bar/1/2)
有没有办法在树函数之前/之后处理文件只打印最深层次?
我知道像python这样的东西可能做得更好,但我的问题是我从未使用过python我不确定工作系统会让我运行python ......他们让我们修改自己的.bashrc所以我是不要太担心!
先谢谢你们!!!!
欧文.
以下代码是从APUE复制的信号实现,稍作修改
namespace
{
using signal_handler = void (*)(int);
signal_handler signal(sigset_t sig, signal_handler);
}
Signal::signal_handler Signal::signal(sigset_t sig, void (*handler)(int))
{
struct sigaction newAction, oldAction;
sigemptyset(&newAction.sa_mask);
newAction.sa_flags = 0;
newAction.sa_handler = handler;
if (sig == SIGALRM)
{
#ifdef SA_INTERRUPT
newAction.sa_flags |= SA_INTERRUPT;
#endif
}
else
{
newAction.sa_flags |= SA_RESTART;
}
if (sigaction(sig, &newAction, &oldAction) < 0)
throw std::runtime_error("signal error: cannot set a new signal handler.")
return oldAction.sa_handler;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在我的测试中运行正常,但我想让它更像C++代码,所以我将signal_handler别名更改为
using signal_handler = std::function<void (int)>;
Run Code Online (Sandbox Code Playgroud)
我也用
newAction.sa_handler = handler.target<void (int)>();
Run Code Online (Sandbox Code Playgroud)
取代 …
static void ReadXml()
{
string a= null;
double b= 0;
double c= 0;
XmlReader xmlReader = new XmlReader("Testxml.xml");
xmlReader.
using (xmlReader)
{
if (xmlReader != null)
{
while (xmlReader.Read())
{
if (xmlReader.NodeType == XmlNodeType.Element)
{
switch (xmlReader.Name)
{
case "a":
a = xmlReader.ReadElementContentAsString();
break;
case "b":
b = double.Parse(xmlReader.ReadElementContentAsString());
break;
case "c":
c = double.Parse(xmlReader.ReadElementContentAsString());
break;
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
TestXML内容:
<a><b>26a83f12c782</b><c>128</c><d>12</d></a>
Run Code Online (Sandbox Code Playgroud)
情况b从未被击中.但是如果我在b的结束元素之后添加一个空格,则会触发案例b.现在如何在不更改xml文件的情况下使其工作?
我使用数据表创建了多个 csv 文件,并希望将所有这些文件压缩到一个 zip 文件中。这就是我动态地做的一切。
我尝试了以下代码
List<string> filestream = GenerateCSVfiles(dataSets);
//Generate CSV files
public List<string> GenerateCSVfiles(List<DataSet> dataSets)
{
List<string> filestream = new List<string>();
StringBuilder result = null;
foreach (DataSet dataSet in dataSets)
{
result = new StringBuilder();
System.Data.DataTable dataTable = dataSet.Tables[0];
foreach (DataColumn colm in dataTable.Columns)
{
result.Append(colm.ColumnName+",");
}
result.Append("\n");
//create csv file
foreach (DataRow row in dataTable.Rows)
{
for (int i = 0; i < dataTable.Columns.Count; i++)
{
result.Append(row[i].ToString());
result.Append(i == dataTable.Columns.Count - 1 ? "\n" : ",");
} …Run Code Online (Sandbox Code Playgroud) 在下面的代码中,每10个整数的许多向量构造有60%的几率,或者现有的向量被删除,有40%的几率.因此,会有很多调用new/malloc和delete.由于所有这些载体类型vector<int>,可以在这里自定义分配器的帮助,以减少电话new和delete,从而提高性能?这个想法是删除的矢量的空间可以由新构造的空间重用.这样的分配器怎么样?
注意:这个问题是关于分配器,它减少了对new和的调用delete.
#include <iostream>
#include <vector>
#include <random>
using namespace std;
int main()
{
// Random generator and distribution
mt19937 gen(123456);
uniform_real_distribution<> dis01(0., 1.);
// Make or delete 10E6 vectors.
vector< vector<int> > v; //the inner vectors will make many calls to new and delete
v.reserve(10E5); //assume some size.
for(int i=0; i<10E6; ++i)
{
if(dis01(gen)<0.6) // if true: make new sub-vector
{
v.emplace_back(); //new sub-vector
v.back().reserve(10);
for(int k=0; k<10; ++k) …Run Code Online (Sandbox Code Playgroud) 我们如何在表变量上创建非聚集索引?
创建表@risk(rskid int)
在@risk上创建非聚簇索引r_rskid_nc(rskid)
这是行不通的??
我怎样才能优化它?
ALTER PROCEDURE [dbo].[SPR_LV004](@TopN INT,@ LoggedUserId INT,@ Entity VARCHAR(255),@ OpModel VARCHAR(255),@ RiskCat VARCHAR(255),@ RsdlInh VARCHAR(1),@ DisplayAction VARCHAR( 1),@ LastAssDate DATETIME)AS
SET NOCOUNT ON
DECLARE @Thisdate DATETIME
SET @ThisDate = GETDATE()
DECLARE @MainFilter TABLE(
fcaName VARCHAR(100)
,fctName VARCHAR(100)
,rskId INT PRIMARY KEY CLUSTERED )
DECLARE @Tgt TABLE(rasRiskId INT
,rasId INT
,RAMName VARCHAR(100)
,RAMColour INT
,RAMImpDesc VARCHAR(100)
,RAMLikDesc VARCHAR(100)
,RAMImpScore INT
,RAMLikScore INT
,LastScore INT
,AnnualExposure NUMERIC(15, 0)
,Currency VARCHAR(9)
,OverallExp NUMERIC(15,0)
,Frequency INT
,LastAssessmentDate DATETIME) …Run Code Online (Sandbox Code Playgroud) 任何人都可以给我一个示例代码,从现有的组合框中获取所选值吗?
我有这个代码,但它没有做任何事情:
function check ()
{
var e = document.getElementById("ticket_category_clone");
var str = e.options[e.selectedIndex].text;
alert(str);
if (str==="Hardware")
{
SPICEWORKS.utils.addStyle('#ticket_c_hardware_clone{display: none !important;}');
}
}
SPICEWORKS.app.helpdesk.ready(check);?
Run Code Online (Sandbox Code Playgroud)
下面是代码的img
和代码
<select id="ticket_category_clone" name="ticket[category]" hdpp="ticket_category">
<option value=""></option><option value="Hardware">Hardware</option>
<option value="Software">Software</option>
<option value="Rede" selected="selected">Rede</option>
<option value="Pedidos">Pedidos</option>
<option value="Formação/Dúvida">Formação/Dúvida</option>
<option value="Outro">Outro</option><option value="#edit_categories#">Edit Categories...</option></select>
Run Code Online (Sandbox Code Playgroud)
我希望它找到一种方法来获得组合框的选定值
问题很简单,可以概括为:
我怎样才能让这个while循环退出?
System.Windows.Media.MediaPlayer player = new System.Windows.Media.MediaPlayer();
WeakReference test = new WeakReference(player);
player.Close();
player = null;
while (test.IsAlive && test.Target != null)
{
System.GC.Collect();
}
Run Code Online (Sandbox Code Playgroud)
我搜索了文档,发现没有办法处理这个对象,while 循环永远不会退出。
c# ×5
c++ ×2
filestream ×2
allocator ×1
asp.net-mvc ×1
bash ×1
combobox ×1
csv ×1
gzip ×1
javascript ×1
linux ×1
performance ×1
sql ×1
sql-server ×1
stream ×1
tree ×1
vector ×1
xcode ×1