我想使用MS Visual C#Express构建的应用程序(如果需要,我愿意升级到标准版)需要数据库.
我对SQL Server Compact感到很兴奋 - 因为我不希望那些将在他们的计算机上安装我的应用程序的人必须安装整个SQL Server或类似的东西.我希望这对最终用户来说尽可能简单.
所以我很兴奋,直到看起来我的表格中的列可以做什么有限.我创建了一个新的数据库,创建一个表,当我去创建列似乎没有一个"文本"数据类型 - 只是一些所谓的"NTEXT"似乎被限制为255个字符."int"似乎限于4(我想要11).并且似乎没有"auto_increment"功能.
这些是我必须忍受的真正限制吗?(或者是因为我使用的是"Express"而不是"Standard").如果这些是真正的限制,那么我的其他数据库选项满足我的要求是什么?(用户是biggie的简易安装 - 我假设我的最终用户只是计算机的普通用户,如果它很复杂会让我的应用程序感到沮丧)
-Adeena
PS:我还希望将我的数据库数据加密到最终用户.我不希望他们能够直接访问数据库表.
PPS.我读过:http: //www.microsoft.com/Sqlserver/2005/en/us/compact.aspx 并没有看到关于这些特殊限制的讨论
我想写出一个文本文件.
而不是默认的UTF-8,我想把它编码为ISO-8859-1编码,这是代码页28591.我不知道如何做到这一点......
我用以下非常简单的代码写出我的文件:
using (StreamWriter sw = File.CreateText(myfilename))
{
sw.WriteLine("my text...");
sw.Close();
}
Run Code Online (Sandbox Code Playgroud) 我的MS Visual C#程序正在编译并运行得很好.我关闭了MS Visual C#,以便在生活中做其他事情.
我重新打开它(在做任何其他事情之前)去"发布"我的程序并得到以下错误消息:
程序C:\ myprogram.exe不包含适用于入口点的静态"Main"方法
咦?是的它确实......而且它们都提前15分钟工作了.当然,我可以相信,在我关闭之前,我不小心碰到了什么或做了什么......但是什么?我该如何解决这个问题?
我的Program.cs文件如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Threading;
namespace SimpleAIMLEditor
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new mainSAEForm());
}
}
}
Run Code Online (Sandbox Code Playgroud)
......那里有一些评论.没有其他错误.
救命?
我正在使用以下内容在C#应用程序中加载XML文档:
XDocument xd1 = new XDocument();
xd1 = XDocument.Load(myfile);
Run Code Online (Sandbox Code Playgroud)
但在此之前,我会测试以确保文件存在:
File.Exists(myfile);
Run Code Online (Sandbox Code Playgroud)
但是......是否有一种(简单)方法在XDocument.Load()之前测试文件以确保它是一个有效的XML文件?换句话说,我的用户可能会意外地在文件浏览器中单击另一个文件并尝试加载,例如,.php文件会导致异常.
我能想到的唯一方法是将它加载到StreamWriter中并简单地对前几个字符进行文本搜索,以确保它们"
谢谢!
-Adeena
这与我前几天询问如何发送电子邮件的问题有关.
我的新相关问题就是这个...如果我的应用程序的用户是在防火墙后面或者为什么行client.Send(mail)将无法工作...
线后:
SmtpClient client = new SmtpClient("mysmtpserver.com", myportID);
client.Credentials = new System.Net.NetworkCredential("myusername.com", "mypassword");
Run Code Online (Sandbox Code Playgroud)
在尝试发送之前,我可以做些什么来测试客户端?
我想把它放在try/catch循环中,但我宁愿做一个测试,然后弹出一个对话框说:无法访问smtp或类似的东西.
(我假设我和我的应用程序用户都没有能力调整他们的防火墙设置.例如......他们在工作时安装应用程序并且无法控制他们的互联网工作)
-Adeena
我在Microsoft Visual C#2008 Express中工作.
我找到了这段代码:
public static int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
Run Code Online (Sandbox Code Playgroud)
问题是我运行了100多次,当我的min = 0和max = 1时,它总是给我相同的答案.我每次都得到0.(我创建了一个测试函数来运行它 - 真的 - 我每次都得到0).我很难相信这是巧合...我还能做些什么来检查或测试这个?(我确实重新进行了测试,min = 0和max = 10,前50次,结果总是"5",第二次50次,结果总是"9".
?? 我需要一些更随意随意的东西......
-Adeena
我正在使用MS Visual C#2010 Express创建一个需要数据库的应用程序.
我了解到,使用此应用程序创建/使用SQL数据库似乎有两种方法.
第一个似乎是在C#中,我可以通过在解决方案资源管理器中右键单击我的应用程序并单击"添加" - >"新项" - >"本地数据库"来创建"本地数据库".然后它显示在数据库资源管理器中,我可以使用它.
另一种方法是我使用SQL Server Management Studio创建数据库,然后在C#代码中,我打开它的连接(SQLConnection ... yada yada yada)并使用它.
我很难理解选择一种方式或另一种方式之间的技术原因......
有人可以描述差异以及选择一种方式与另一种方式的标准吗?(或指向网站参考......)
谢谢!
-Adeena
附加信息......现在,这是一个业余爱好项目,因为我得到了一些成果.
我有一个用NetBeans 8编写的JavaFX/Java 8应用程序(否SceneBuilder).
我的应用程序有一个主窗口,它有自己的FXML文件(primary.fxml)和它自己的控制器类(FXMLPrimaryController.java).FXML中的一个项目是TextArea.FXMLPrimaryController.java中的一些方法是关于附加的TextArea.
此应用程序现在生成第二个窗口(另一个"阶段"),其中包含自己的FXML(second.fxml)和自己的控制器类(FXMLsecondController.java).
在第二个控制器类中,如何访问主要的TextArea?
以下是相关代码的示例:
primary.fxml:
<Button text="press me!" onAction="#openSecondWindow" />
<TextArea fx:id="myArea" />
Run Code Online (Sandbox Code Playgroud)
FXMLPrimaryController.java:
public class FXMLPrimaryController implements Initializable {
@Override
public void initialize(URL url, ResourceBundle rb) {
}
@FXML private TextArea myArea;
final public void writeToTextArea() {
myArea.appendText("hi!");
}
@FXML
private void openSecondWindow(ActionEvent event) throws Exception {
Group root = new Group();
Stage stage = new Stage();
AnchorPane frame = FXMLLoader.load(getClass().getResource("second.fxml"));
root.getChildren().add(frame);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
} …Run Code Online (Sandbox Code Playgroud) 我正在使用Microsoft Visual C#2008 Express和SQLite.
我用这样的东西查询我的数据库:
SQLiteCommand cmd = new SQLiteCommand(conn);
cmd.CommandText = "select id from myTable where word = '" + word + "';";
cmd.CommandType = CommandType.Text;
SQLiteDataReader reader = cmd.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)
然后我做这样的事情:
if (reader.HasRows == true) {
while (reader.Read()) {
// I do stuff here
}
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是在我执行"reader.Read()" 之前计算行数,因为返回的数字将影响我想要/需要做的事情.我知道我可以在while语句中添加一个计数,但我真的需要知道计数.
有什么建议?
我正在使用Microsoft Visual C#2008 Express.
在我的主要表单中,有一个X按钮可以关闭右上角的表单.如何向此按钮添加代码?在我的菜单中,我有一个"退出"项,它有清理和关闭我的数据库的代码.如果用户选择相同的代码作为退出方式,如何将相同的代码添加到此按钮?
谢谢!
-Adeena
c# ×7
database ×2
sql-server ×2
button ×1
compilation ×1
email ×1
encoding ×1
exit ×1
fxml ×1
iso-8859-1 ×1
java ×1
java-8 ×1
javafx ×1
linq-to-xml ×1
random ×1
smtpclient ×1
sqlite ×1
utf-8 ×1
xml ×1